OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-07-31  Julian Brown  <julian@codesourcery.com>
2
3         * config/arm/neon.md (vec_set<mode>_internal, vec_setv2di_internal):
4         New define_insns. Use correct RTL.
5         (vec_set<mode>): Write as expander.
6
7 2007-07-31  Razya Ladelsky  <razya@il.ibm.com>
8
9         * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring 
10         to an unallocated space.
11
12 2007-07-30  Jan Sjodin  <jan.sjodin@amd.com>
13
14         * tree-data-ref.c
15         (split_constant_offset): Enable split_constant_offset to extract
16         constants from other statements.
17         * tree-vect-transform.c
18         (vect_create_addr_base_for_vector_ref): Generate data_ref_base
19         to a temp var. Force base_offset to be simple.
20
21 2007-07-30  Seongbae Park <seongbae.park@gmail.com>
22
23         * df-scan.c (df_scan_verify): Remove artificial limit on
24         the number of blocks for verification.
25         * df-problems.c (df_lr_bb_local_compute, df_simulate_find_defs,
26         df_simulate_defs): Avoid unnecessary insn checking for defs.
27
28 2007-07-29  Mark Mitchell  <mark@codesourcery.com>
29
30         gcc/
31         * config/m68k/lb1sf68.asm (FUNC): New macro.
32         (__mulsi3): Use it.
33         (__udivsi3): Likewise.
34         (__divsi3): Likewise.
35         (__umodsi3): Likewise.
36         (__modsi3): Likewise.
37         (__subdf3): Likewise.
38         (__adddf3): Likewise.
39         (__muldf3): Likewise.
40         (__divdf3): Likewise.
41         (__negdf2): Likewise.
42         (__cmpdf2): Likewise.
43         (__subsf3): Likewise.
44         (__addsf3): Likewise.
45         (__mulsf3): Likewise.
46         (__divsf3): Likewise.
47         (__negsf2): Likewise.
48         (__cmpsf2): Likewise.
49         (__eqdf2): Likewise.
50         (__nedf2): Likewise.
51         (__gtdf2): Likewise.
52         (__gedf2): Likewise.
53         (__ltdf2): Likewise.
54         (__ledf2): Likewise.
55         (__eqsf2): Likewise.
56         (__nesf2): Likewise.
57         (__gtsf2): Likewise.
58         (__gesf2): Likewise.
59         (__ltsf2): Likewise.
60         (__lesf2): Likewise.
61
62 2007-07-30  Ollie Wild  <aaw@google.com>
63
64         * c-ppoutput.c (print_lines_directives_only): New function.
65         (scan_translation_unit_directives_only): New function.
66         (preprocess_file): Add call to scan_translation_unit_directives_only.
67         * c-opts.c (c_common_handle_option): Add OPT_fdirectives_only.
68         (sanitize_cpp_opts): Add default flag_dump_macros setting for
69         -fdirectives-only.  Add errors for -fdirectives-only conflict with
70         -Wunused-macros and -traditional.
71         (finish_options): Add builtin macro initialization for
72         -fdirectives-only + -fpreprocessed.
73         * c.opt (fdirectives-only): New.
74         * doc/cppopts.texi (fdirectives-only): New.
75
76 2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
77
78         * alias.c (record_set, memory_modified_1): Constify.
79         * bt-load.c (note_btr_set): Likewise.
80         * caller-save.c (mark_set_regs, add_stored_regs): Likewise.
81         * combine.c (set_nonzero_bits_and_sign_copies,
82         expand_field_assignment, record_dead_and_set_regs_1,
83         use_crosses_set_p, reg_dead_at_p_1, can_combine_p,
84         likely_spilled_retval_1): Likewise.
85         * config/frv/frv.c (frv_registers_update_1, frv_io_check_address,
86         frv_io_handle_set): Likewise.
87         * config/mips/mips.c (mips_sim_record_set,
88         vr4130_true_reg_dependence_p_1): Likewise.
89         * config/mt/mt.c (insn_dependent_p_1): Likewise.
90         * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
91         * config/sh/sh.c (flow_dependent_p_1): Likewise.
92         * cselib.c (cselib_invalidate_rtx_note_stores): Likewise.
93         * dce.c (mark_nonreg_stores_1, mark_nonreg_stores_2): Likewise.
94         * ddg.c (mark_mem_store): Likewise.
95         * df-problems.c (df_urec_mark_reg_change): Likewise.
96         * function.c (update_epilogue_consts): Likewise.
97         * gcse.c (record_set_info, record_last_set_info,
98         mems_conflict_for_gcse_p, canon_list_insert, reg_set_info,
99         reg_clear_last_set): Likewise.
100         * global.c (mark_reg_store, mark_reg_clobber, reg_becomes_live):
101         Likewise.
102         * jump.c (reversed_comparison_code_parts): Likewise.
103         * local-alloc.c (validate_equiv_mem_from_store, no_equiv,
104         reg_is_set): Likewise.
105         * loop-iv.c (mark_altered): Likewise.
106         * mode-switching.c (reg_becomes_live): Likewise.
107         * optabs.c (no_conflict_move_test): Likewise.
108         * postreload-gcse.c (record_last_set_info, find_mem_conflicts):
109         Likewise.
110         * postreload.c (reload_combine_note_store, move2add_note_store):
111         Likewise.
112         * regmove.c (flags_set_1): Likewise.
113         * regrename.c (note_sets, kill_clobbered_value, kill_set_value):
114         Likewise.
115         * reload1.c (mark_not_eliminable, forget_old_reloads_1):
116         Likewise. 
117         * resource.c (update_live_status): Likewise.
118         * rtl.h (set_of, note_stores): Likewise.
119         * rtlanal.c (set_of_1, parms_set, struct set_of_data, set_of,
120         note_stores, parms_set): Likewise.
121         * sched-rgn.c (sets_likely_spilled_1): Likewise.
122         * stack-ptr-mod.c (notice_stack_pointer_modification_1):
123         Likewise. 
124         * var-tracking.c (count_stores, add_stores): Likewise.
125
126 2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
127
128         * alias.c (mems_in_disjoint_alias_sets_p,
129         fixed_scalar_and_varying_struct_p, aliases_everything_p,
130         nonoverlapping_component_refs_p, nonoverlapping_memrefs_p,
131         write_dependence_p, mems_in_disjoint_alias_sets_p,
132         read_dependence, true_dependence, canon_true_dependence,
133         anti_dependence, output_dependence): Constify.
134         * combine.c (extended_count): Likewise.
135         * cse.c (cse_rtx_varies_p, hash_rtx, exp_equiv_p): Likewise.
136         * cselib.c (get_value_hash, references_value_p,
137         cselib_reg_set_mode, cselib_rtx_varies_p): Likewise.
138         * cselib.h (cselib_reg_set_mode, references_value_p): Likewise.
139         * emit-rtl.c (mem_expr_equal_p, active_insn_p): Likewise.
140         * function.c (contains, prologue_epilogue_contains,
141         sibcall_epilogue_contains): Likewise. 
142         * jump.c (simplejump_p, condjump_p, condjump_in_parallel_p,
143         pc_set, any_uncondjump_p, any_condjump_p, onlyjump_p,
144         only_sets_cc0_p, sets_cc0_p, rtx_renumbered_equal_p, true_regnum,
145         reg_or_subregno): Likewise.
146         * recog.c (asm_noperands): Likewise.
147         * reload1.c (function_invariant_p): Likewise.
148         * rtl.h (mem_expr_equal_p, active_insn_p, rtx_varies_p,
149         rtx_addr_varies_p, asm_noperands, exp_equiv_p, hash_rtx,
150         condjump_p, any_condjump_p, any_uncondjump_p, pc_set,
151         simplejump_p, onlyjump_p, only_sets_cc0_p, sets_cc0_p,
152         true_regnum, reg_or_subregno, condjump_in_parallel_p,
153         extended_count, prologue_epilogue_contains,
154         sibcall_epilogue_contains, function_invariant_p, true_dependence,
155         canon_true_dependence, read_dependence, anti_dependence,
156         output_dependence): Likewise.
157         * rtlanal.c (rtx_varies_p, rtx_addr_varies_p): Likewise.
158
159 2007-07-30  Julian Brown  <julian@codesourcery.com>
160
161         * config/arm/neon.md (V_ext): New mode attribute.
162         (neon_vget_lane<mode>): Replace with define_expand.
163         (neon_vget_lane<mode>_sext_internal)
164         (neon_vget_lane<mode>_zext_internal): New define_insns for double
165         and quad precision vectors.
166         (neon_vget_lanedi): Add bounds check. Remove dead comment.
167         * config/arm/neon.ml (get_lane): Make 32-bit get-lane intrinsics
168         have typeless 32-bit result.
169
170 2007-07-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
171
172         PR tree-opt/32527
173         * tree-affine.h (aff_tree): The type of rest is sizetype for types
174         of pointers.
175         * tree-affine.c (aff_combination_scale): If type is a pointer type,
176         use sizetype for rest.
177         (aff_combination_add_elt): Likewise. Don't specialize pointer types.
178         (aff_combination_convert): Don't convert rest for pointer types.
179
180 2007-07-28  Daniel Berlin  <dberlin@dberlin.org>
181
182         * Makefile.in (tree-ssa-alias.o): Add alloc-pool.h
183
184         * tree-ssa-alias.c: Add alloc-pool.h.
185         (init_alias_info): Free alias_bitmap_obstack.
186         (delete_alias_info): Call delete_mem_ref_stats.
187         (get_mem_sym_stats_for): Use alloc_pool.
188         (init_mem_ref_stats): Do not delete mem_ref_stats here.
189         (delete_mem_sym_stats): Removed.
190         
191 2007-07-29  Sebastian Pop  <sebpop@gmail.com>
192
193         * tree-data-ref.c (add_multivariate_self_dist): Parametric access
194         functions cannot be represented as classical distance vectors.
195
196 2007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
197
198         * attribs.c (hash_attr, eq_attr, init_attributes): Constify.
199         * builtins.c (validate_arg, builtin_mathfn_code,
200         validate_arglist): Likewise.
201         * calls.c (call_expr_flags): Likewise.
202         * combine.c (reg_nonzero_bits_for_combine,
203         reg_num_sign_bit_copies_for_combine, get_last_value,
204         reg_truncated_to_mode): Likewise.
205         * emit-rtl.c (subreg_lowpart_p): Likewise.
206         * expr.c (highest_pow2_factor_for_target,
207         categorize_ctor_elements_1, categorize_ctor_elements,
208         count_type_elements, contains_packed_reference,
209         highest_pow2_factor, highest_pow2_factor_for_target): Likewise.
210         * fold-const.c (may_negate_without_overflow_p, int_const_binop,
211         fold_convertible_p, operand_equal_p, tree_swap_operands_p,
212         native_encode_int, native_encode_real, native_encode_complex,
213         native_encode_vector, native_encode_expr, native_interpret_int,
214         native_interpret_real, native_interpret_complex,
215         native_interpret_vector, native_interpret_expr): Likewise.
216         * function.c (use_register_for_decl): Likewise.
217         * gimplify.c (get_name): Likewise.
218         * langhooks-def.h (lhd_return_null_const_tree): New.
219         (LANG_HOOKS_GET_CALLEE_FNDECL): Use it.
220         * langhooks.c (lhd_return_null_const_tree): New.
221         * langhooks.h (lang_get_callee_fndecl): Constify.
222         * output.h (constructor_static_from_elts_p): Likewise.
223         * rtl-factoring.c (gen_symbol_ref_rtx_for_label): Likewise.
224         * rtl.h (nonzero_bits, num_sign_bit_copies, truncated_to_mode,
225         subreg_lowpart_p, noop_move_p, struct rtl_hooks): Likewise.
226         * rtlanal.c (cached_nonzero_bits, nonzero_bits1,
227         cached_num_sign_bit_copies, num_sign_bit_copies1, noop_move_p,
228         nonzero_bits, num_sign_bit_copies, truncated_to_mode): Likewise.
229         * rtlhooks-def.h (reg_nonzero_bits_general,
230         reg_num_sign_bit_copies_general, reg_truncated_to_mode_general):
231         Likewise. 
232         * rtlhooks.c (reg_num_sign_bit_copies_general,
233         reg_nonzero_bits_general, reg_truncated_to_mode_general):
234         Likewise. 
235         * stmt.c (warn_if_unused_value, is_body_block): Likewise.
236         * stor-layout.c (mode_for_size_tree): Likewise.
237         * tree-ssa-loop-im.c (memref_eq): Likewise.
238         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): Likewise.
239         * tree.c (contains_placeholder_p, type_list_equal,
240         simple_cst_equal, get_callee_fndecl, operand_equal_for_phi_arg_p):
241         Likewise. 
242         * tree.h (tree_int_cst_sign_bit, may_negate_without_overflow_p,
243         mode_for_size_tree, categorize_ctor_elements, count_type_elements,
244         contains_placeholder_p, contains_packed_reference,
245         get_callee_fndecl, operand_equal_for_phi_arg_p,
246         warn_if_unused_value, is_body_block, native_encode_expr,
247         native_interpret_expr, fold_convertible_p, operand_equal_p,
248         int_const_binop, tree_swap_operands_p, builtin_mathfn_code,
249         validate_arglist, simple_cst_equal, type_list_equal,
250         use_register_for_decl, call_expr_flags, get_name,
251         highest_pow2_factor): Likewise.
252         (const_call_expr_arg_iterator_d,
253         init_const_call_expr_arg_iterator, next_const_call_expr_arg,
254         first_const_call_expr_arg, more_const_call_expr_args_p,
255         FOR_EACH_CONST_CALL_EXPR_ARG): New.
256         * varasm.c (constructor_static_from_elts_p): Constify.
257
258 2007-07-28  Kazu Hirata  <kazu@codesourcery.com>
259
260         * cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md,
261         config/arm/neon-schedgen.ml, config/arm/neon.ml,
262         config/arm/vec-common.md, config/ia64/div.md, cselib.c,
263         df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c,
264         regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c,
265         tree-vect-transform.c, tree.def: Fix comment typos.  Follow
266         spelling conventions.
267         * doc/invoke.texi: Follow spelling conventions.
268
269 2007-07-29  Vladimir Yanovsky  <yanov@il.ibm.com>
270             Revital Eres  <eres@il.ibm.com>
271
272         * modulo-sched.c (sms_schedule): Avoid loops which includes
273         auto-increment instructions.
274
275 2007-07-28  Richard Guenther  <rguenther@suse.de>
276
277         PR middle-end/32920
278         * fold-const.c (fold_cond_expr_with_comparison): Convert
279         operand zero of MIN/MAX_EXPR to correct type.
280
281 2007-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
282
283         * calls.c (special_function_p, setjmp_call_p, alloca_call_p,
284         flags_from_decl_or_type): Constify.
285         * gcc.c (do_spec_1): Likewise.
286         * print-tree.c (dump_addr, print_node_brief): Likewise.
287         * tree-cfg.c (stmt_starts_bb_p, is_ctrl_stmt, computed_goto_p,
288         simple_goto_p, tree_can_make_abnormal_goto, stmt_starts_bb_p,
289         tree_purge_all_dead_eh_edges): Likewise.
290         * tree-flow.h (is_ctrl_stmt, computed_goto_p, simple_goto_p,
291         tree_can_make_abnormal_goto, tree_purge_all_dead_eh_edges):
292         Likewise. 
293         * tree.c (expr_location, expr_has_location, expr_locus,
294         expr_filename, expr_lineno, get_inner_array_type,
295         fields_compatible_p): Likewise.
296         * tree.h (get_inner_array_type, fields_compatible_p,
297         expr_location, expr_has_location, expr_locus, expr_filename,
298         expr_lineno, dump_addr, print_node_brief, flags_from_decl_or_type,
299         setjmp_call_p, alloca_call_p): Likewise.
300
301 2007-07-28  Daniel Berlin  <dberlin@dberlin.org>
302
303         * timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE,
304         TV_FLOW_INSENSITIVE.
305
306         * tree-ssa-alias.c (compute_call_clobbered): Push/pop
307         TV_CALL_CLOBBER.
308         (compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE.
309         (compute_flow_insensitive_aliasing): Ditto for
310         TV_FLOW_INSENSITIVE.    
311
312 2007-07-27  Jan Hubicka  <jh@suse.cz>
313
314         * config/i386/i386.c (register_move_cost): Remove accidentally comitted
315         #if 0 block.
316
317         * attribs.c: Include hashtab.h
318         (attribute_hash): New.
319         (substring): New structure.
320         (extract_attribute_substring, substring_hash, hash_attr, eq_attr):
321         New function.
322         (init_attributes): Initialize attribute hash.
323         (decl_attributes): Use attribute hash.
324         * Makefile.in (attribs.c): Depend on hashtab.h.
325
326 2007-07-27  Steve Ellcey  <sje@cup.hp.com>
327
328         * config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test.
329
330 2007-07-27  Richard Sandiford  <richard@codesourcery.com>
331
332         * doc/invoke.texi (mdsp, mdspr2): Document the __mips_dsp,
333         __mips_dspr2 and __mips_dsp_rev macros.
334         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dsp_rev.
335
336 2007-07-27  Douglas Gregor  <doug.gregor@gmail.com>
337         
338        * c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X.
339
340 2007-07-26  Kenneth Zadeck <zadeck@naturalbridge.com>
341
342         PR middle-end/32749
343         
344         * df-problems.c (df_create_unused_note): Removed do_not_gen parm
345         and the updating of the live and do_not_gen sets.
346         (df_note_bb_compute): Added updating of live and do_not_gen sets
347         for regular defs so that the case of clobber inside conditional
348         call is processed correctly.
349         
350 2007-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
351
352         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
353         operands with compatible type.
354
355 2007-07-27  Richard Sandiford  <richard@codesourcery.com>
356
357         * expr.h (store_bit_field): Don't return a value.
358         * expmed.c (check_predicate_volatile_ok): New function.
359         (store_bit_field_1): New function, extracted from store_bit_field.
360         Take a fallback_p argument and return true if the operation succeeded.
361         Only use store_fixed_bit_field if fallback_p.  Don't recompute
362         mode_for_extraction; use op_mode instead.  Try forcing memories
363         into registers if the insv expander fails.
364         (store_bit_field): Use store_bit_field_1 with fallback_p true.
365         Don't return a value.
366         (convert_extracted_bit_field): New function, extracted from
367         store_bit_field.
368         (extract_bit_field_1): Likewise.  Take a fallback_p argument
369         and return NULL if the operation succeeded.  Only use
370         extract_fixed_bit_field if fallback_p.  Only calculate one
371         extraction mode.  Combine code for extv and extzv.  Try forcing
372         memories into registers if the ext(z)v expander fails.
373         (extract_bit_field): Use extract_bit_field_1 with fallback_p true.
374
375 2007-07-27  Richard Sandiford  <rsandifo@nildram.co.uk>
376
377         * df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags
378         into bitfields.
379         (df_ref): Likewise.  Put regno with other integer fields.
380
381 2007-07-27  Richard Sandiford  <rsandifo@nildram.co.uk>
382
383         * df.h (df_mw_hardreg): Remove "loc" field.
384         * df-scan.c (df_ref_record): Don't set it.  Remove redundant
385         local variable.
386         * df-problems.c (df_whole_mw_reg_unused_p): New function,
387         split out from df_set_unused_notes_for_mw.  Return false for
388         partial references.  Assert that mw_reg is a REG when returning true.
389         (df_set_unused_notes_for_mw): Use it.  Use mw_reg instead of *loc.
390         (df_whole_mw_reg_dead_p): New function, split out from
391         df_set_dead_notes_for_mw.  Return false for partial references.
392         Assert that mw_reg is a REG when returning true.
393         (df_set_dead_notes_for_mw): Use it.  Use mw_reg instead of *loc.
394         Remove redundant bitmap check.
395
396 2007-07-26  H.J. Lu  <hongjiu.lu@intel.com>
397
398         * config/ia64/t-ia64 ($(T)crtbegin.o): Removed.
399         ($(T)crtend.o): Likwise.
400         ($(T)crtbeginS.o): Likwise.
401         ($(T)crtendS.o): Likwise.
402         ($(T)crtfastmath.o): Likwise.
403
404 2007-07-26  Zdenek Dvorak  <dvorakz@suse.cz>
405
406         * dominance.c (dom_computed, n_bbs_in_dom_tree): Removed.
407         * function.h (dom_computed, n_bbs_in_dom_tree): New macros.
408         * basic-block.h (struct control_flow_graph): Added x_dom_computed
409         and x_n_bbs_in_dom_tree fields.
410
411 2007-07-26  Steve Ellcey  <sje@cup.hp.com>
412
413         PR tree-optimization/32087
414         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
415         Do not call scale_bbs_frequencies_int with prob of zero.
416
417 2007-07-26  Julian Brown  <julian@codesourcery.com>
418
419         * config/arm/arm-protos.h (neon_lane_bounds, neon_const_bounds)
420         (neon_element_bits): Add prototypes.
421         * config/arm/arm.c (bounds_check, neon_lane_bounds)
422         (neon_const_bounds, neon_element_bits): New functions.
423         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_lanedi)
424         (neon_vget_lanev2di, neon_vset_lane<mode>, neon_vset_lanedi)
425         (neon_vset_lanev2di, neon_vdup_lane<mode>, neon_vdup_lanedi)
426         (neon_vdup_lanev2di, neon_vcvt_n<mode>, neon_vmul_lane<mode>)
427         (neon_vmull_lane<mode>, neon_vqdmull_lane<mode>)
428         (neon_vqdmulh_lane<mode>, neon_vmla_lane<mode>)
429         (neon_vmlal_lane<mode>, neon_vqdmlal_lane<mode>)
430         (neon_vmls_lane<mode>, neon_vmlsl_lane<mode>)
431         (neon_vqdmlsl_lane<mode>, neon_vext<mode>, neon_vshr_n<mode>)
432         (neon_vshrn_n<mode>, neon_vqshrn_n<mode>, neon_vqshrun_n<mode>)
433         (neon_vshl_n<mode>, neon_vshl_n<mode>, neon_vqshl_n<mode>)
434         (neon_vqshlu_n<mode>, neon_vshll_n<mode>, neon_vsra_n<mode>)
435         (neon_vsri_n<mode>, neon_vsli_n<mode>): Add bounds checks.
436
437 2007-07-26  Nathan Froyd  <froydnj@codesourcery.com>
438
439         * config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo.
440         (HAVE_AS_GNU_ATTRIBUTE): Undefine.
441
442 2007-07-26  Mark Shinwell  <shinwell@codesourcery.com>
443             Julian Brown  <julian@codesourcery.com>
444
445         * config/arm/arm.c (arm_mac_accumulator_is_mul_result): New.
446         * config/arm/arm-protos.h (arm_mac_accumulator_is_mul_result): New.
447         * config/arm/cortex-a8.md: New.
448         * config/arm/cortex-a8-neon.md: New.
449         * config/arm/neon-schedgen.ml: New.
450         * config/arm/neon.md (vqh_mnem): New.
451         (neon_type): New.
452         (Is_float_mode): New.
453         (Scalar_mul_8_16): New.
454         (Is_d_reg): New.
455         (V_mode_nunits): New.
456         (All instruction patterns): Annotate with neon_type attribute
457         values.
458         * config/arm/arm.md: Include cortex-a8.md.
459         (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab
460         values.
461         Annotate instruction patterns accordingly.
462         (generic_sched): Do not use generic scheduling for Cortex-A8.
463         (generic_vfp): Do not use generic VFP scheduling for Cortex-A8.
464
465 2007-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
466
467         * fold-const.c (fold_read_from_constant_string): Use
468         build_int_cst_type.
469         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
470
471 2007-07-26  Nick Clifton  <nickc@redhat.com>
472
473         * tree-ssa-operands.h: Change copyright header to refer to version
474         3 of the GNU General Public License and to point readers at the
475         COPYING3 file and the FSF's license web page.
476         * tree-vrp.c, regrename.c, attribs.c, loop-unswitch.c,
477         sched-ebb.c, fwprop.c, tree-loop-linear.c, dwarf2asm.c,
478         tree-into-ssa.c, dwarf2asm.h, tree-ssa-loop-im.c, sbitmap.c,
479         targhooks.c, tree-dump.c, tree-complex.c, sbitmap.h, targhooks.h,
480         tree-dump.h, regstat.c, see.c, machmode.h, hooks.c, cgraphbuild.c,
481         hooks.h, genrecog.c, tree-ssa-threadupdate.c, gen-protos.c,
482         flags.h, rtlhooks.c, gencheck.c, tree-ssa-loop-niter.c,
483         opts-common.c, dbgcnt.def, tree-pretty-print.c, tracer.c,
484         gengtype.c, mkconfig.sh, gengtype.h, tree-ssa-loop-unswitch.c,
485         cgraph.c, c-lex.c, cgraph.h, libfuncs.h, cfgloopmanip.c,
486         rtl-error.c, optabs.c, postreload-gcse.c, tree-ssa-loop-manip.c,
487         optabs.h, genmddeps.c, defaults.h, postreload.c, value-prof.c,
488         tree-ssa-loop-ch.c, tree-tailcall.c, gengenrtl.c, value-prof.h,
489         genopinit.c, tree.c, tree.h, reload.c, tree-pass.h, ipa-cp.c,
490         reload.h, bitmap.c, bitmap.h, tree-scalar-evolution.c,
491         c-config-lang.in, tree-scalar-evolution.h, target.h, cppspec.c,
492         rtlanal.c, ddg.c, lambda-mat.c, mips-tdump.c, ddg.h,
493         tree-phinodes.c, mips-tfile.c, pointer-set.c, pointer-set.h,
494         diagnostic.c, final.c, diagnostic.h, builtins.c, genoutput.c,
495         gcc.c, lists.c, tree-ssa-alias-warnings.c, gcc.h, cfghooks.c,
496         input.h, gensupport.c, fold-const.c, cfghooks.h, insn-notes.def,
497         gensupport.h, builtin-attrs.def, sync-builtins.def, params.c,
498         cfgloopanal.c, params.h, graphds.c, omp-low.c, tree-ssa-dse.c,
499         graphds.h, gcov.c, cfg.c, genextract.c, ipa-reference.c,
500         genautomata.c, tree-ssa-uncprop.c, auto-inc-dec.c, toplev.c,
501         tree-gimple.c, ipa-reference.h, vmsdbgout.c, errors.c, toplev.h,
502         reorg.c, tree-gimple.h, tree-chrec.c, pretty-print.c, errors.h,
503         real.c, tree-chrec.h, pretty-print.h, debug.c, real.h, genemit.c,
504         omega.c, c-cppbuiltin.c, genmultilib, debug.h, omega.h,
505         tree-ssa-sccvn.c, genconfig.c, tree-ssa-sccvn.h, cgraphunit.c,
506         regs.h, df-scan.c, vec.c, hosthooks-def.h, vec.h,
507         tree-ssa-copyrename.c, scan.c, builtin-types.def, tree-ssa-ccp.c,
508         scan.h, mode-classes.def, haifa-sched.c, dominance.c, dojump.c,
509         double-int.c, gcov-io.c, dbxout.c, builtins.def, double-int.h,
510         dbxout.h, tree-ssa-loop-ivopts.c, df-core.c, mode-switching.c,
511         gengtype-lex.l, tree-nomudflap.c, modulo-sched.c, c-objc-common.c,
512         hosthooks.h, c-objc-common.h, caller-save.c, graph.c,
513         ipa-pure-const.c, graph.h, c-format.c, cse.c, fix-header.c,
514         c-format.h, web.c, tree-stdarg.c, genpeep.c, tree-stdarg.h,
515         tree-ssa-math-opts.c, xcoffout.c, tree-ssa-dom.c, tree-nrv.c,
516         xcoffout.h, tree-ssa-propagate.c, ipa-utils.c,
517         tree-ssa-propagate.h, tree-ssa-alias.c, loop-init.c, ipa-utils.h,
518         gimple-low.c, rtl.def, c-tree.h, tree-ssa-sink.c, ipa-inline.c,
519         mkmap-symver.awk, machmode.def, c-pch.c, cfganal.c, global.c,
520         alloc-pool.c, c-semantics.c, alloc-pool.h, jump.c, ifcvt.c,
521         dwarf2out.c, expr.c, cfgbuild.c, tree-browser.c, dwarf2out.h,
522         expr.h, longlong.h, opts.c, gcov-iov.c, opts.h, dwarf2.h,
523         genattrtab.c, genconditions.c, genattr.c, optc-gen.awk,
524         timevar.def, tree-ssa-loop-ivcanon.c, hard-reg-set.h, predict.c,
525         tree-ssa-loop.c, host-default.c, predict.h, recog.c, dbgcnt.c,
526         recog.h, dbgcnt.h, c-aux-info.c, tree-ssa-address.c, timevar.c,
527         dse.c, lcm.c, tree-ssa-ifcombine.c, timevar.h, dse.h,
528         matrix-reorg.c, tree-vn.c, treestruct.def, fp-test.c, c-decl.c,
529         tree-eh.c, c-errors.c, c-pretty-print.c, regmove.c,
530         lambda-trans.c, c-pretty-print.h, et-forest.c, et-forest.h,
531         ebitmap.c, configure.ac, local-alloc.c, function.c, langhooks.c,
532         ebitmap.h, cppdefault.c, tree-vectorizer.c, function.h,
533         langhooks.h, print-rtl.c, cppdefault.h, df.h, tree-vectorizer.h,
534         sdbout.c, stor-layout.c, sdbout.h, rtlhooks-def.h, read-rtl.c,
535         gcse.c, ipa-type-escape.c, vmsdbg.h, alias.c, gengtype-parse.c,
536         ipa-type-escape.h, domwalk.c, alias.h, tree-if-conv.c, profile.c,
537         init-regs.c, domwalk.h, ipa.c, gccbug.in, tree-data-ref.c,
538         loop-unroll.c, tree-data-ref.h, tree-flow-inline.h, tree-affine.c,
539         mkmap-flat.awk, tree-affine.h, tree-vect-analyze.c, c.opt, ggc.h,
540         opt-gather.awk, c-typeck.c, gimplify.c, coretypes.h, exec-tool.in,
541         insn-addr.h, tree-ssa-phiopt.c, c-pragma.c, c-pragma.h, calls.c,
542         tree-ssa-coalesce.c, genmodes.c, loop-doloop.c, predict.def,
543         dwarf.h, tree.def, rtl-factoring.c, lower-subreg.c, expmed.c,
544         bt-load.c, ggc-common.c, genflags.c, tree-dfa.c, except.c,
545         coverage.c, except.h, emit-rtl.c, cfgexpand.c, coverage.h,
546         stringpool.c, cselib.c, emit-rtl.h, tree-cfgcleanup.c, c-opts.c,
547         cselib.h, cfgcleanup.c, simplify-rtx.c, tree-ssa-pre.c, explow.c,
548         tree-ssa-live.c, tree-sra.c, tree-ssa-live.h, tree-predcom.c,
549         loop-invariant.c, genpreds.c, protoize.c, opth-gen.awk, c-dump.c,
550         lambda.h, loop-iv.c, tree-mudflap.c, ipa-prop.c, print-tree.c,
551         tree-mudflap.h, tree-ssa-copy.c, ipa-prop.h, cfglayout.c,
552         tree-ssa-forwprop.c, c-convert.c, cfglayout.h, common.opt,
553         ggc-zone.c, ggc-page.c, c-omp.c, tree-ssa-dce.c, gencodes.c,
554         varasm.c, tree-vect-patterns.c, libada-mk.in, tree-ssa-ter.c,
555         sched-deps.c, tree-nested.c, c-ppoutput.c, tree-ssa.c,
556         target-def.h, tree-ssa-loop-prefetch.c, lambda-code.c,
557         omp-builtins.def, rtl.c, regclass.c, stab.def, intl.c, rtl.h,
558         intl.h, tree-inline.c, conditions.h, tree-inline.h, integrate.c,
559         sched-int.h, tree-iterator.c, integrate.h, tree-iterator.h,
560         genchecksum.c, tree-optimize.c, output.h, tree-vect-transform.c,
561         tree-object-size.c, combine.c, tree-outof-ssa.c, addresses.h,
562         bb-reorder.c, stack-ptr-mod.c, resource.c, var-tracking.c,
563         cfgloop.c, system.h, resource.h, ggc-none.c, tree-profile.c,
564         cfgloop.h, c-gimplify.c, c-common.c, opt-functions.awk,
565         tree-vect-generic.c, tree-flow.h, df-problems.c, scan-decls.c,
566         c-common.h, config.gcc, reg-stack.c, tlink.c, main.c, stub-objc.c,
567         fixproto, config.host, Makefile.in, gccspec.c, sched-rgn.c,
568         vecprim.h, basic-block.h, tree-ssa-structalias.c,
569         tree-ssa-structalias.h, c-common.def, sched-vis.c, tree-cfg.c,
570         passes.c, genconstants.c, c-incpath.c, c-incpath.h,
571         struct-equiv.c, c-parser.c, tree-ssa-reassoc.c, varray.c, sreal.c,
572         varray.h, dfp.c, sreal.h, combine-stack-adj.c, dfp.h,
573         reg-notes.def, cfgrtl.c, config.build, varpool.c, gengtype-yacc.y,
574         stmt.c, dce.c, tree-browser.def, prefix.c, statistics.h,
575         params.def, dce.h, c-lang.c, gcov-dump.c, prefix.h,
576         tree-ssanames.c, collect2.c, collect2.h, tree-ssa-threadedge.c,
577         convert.c, convert.h, langhooks-def.h, reload1.c,
578         tree-ssa-operands.c: Likewise.
579
580 2007-07-26  Jan Hubicka  <jh@suse.cz>
581
582         * tree-ssa-live.c: Include debug.h and flags.h.
583         (mark_scope_block_unused): New function.
584         (remove_unused_scope_block_p): New function.
585         (remove_unused_locals): Remove unused blocks too.
586
587 2007-07-25  Ian Lance Taylor  <iant@google.com>
588
589         * combine.c (combine_max_regno): Remove.  Remove all uses.
590         (struct reg_stat_struct): Rename from struct reg_stat.
591         (reg_stat_type): Define, and declare VECs.
592         (reg_stat): Change from pointer to VEC.  Change all uses.
593         (combine_split_insns): New static function.
594         (try_combine, find_split_point): Call it instead of split_insns.
595
596 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
597
598         * cfghooks.c (split_block): Fix the information about loop latch.
599
600 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
601
602         * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches.
603
604 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
605
606         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
607         Scan the new edge for loop exit info.
608
609 2007-07-25  Andreas Tobler  <a.tobler@schweiz.org>
610
611         * config/darwin.c: Include debug.h.
612
613 2007-07-25  Steve Ellcey  <sje@cup.hp.com>
614
615         PR target/32218
616         * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
617
618 2007-07-25  Steve Ellcey  <sje@cup.hp.com>
619
620         * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode.
621         (HARD_REGNO_MODE_OK): Ditto.
622         (MODES_TIEABLE_P): Ditto.
623         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
624         (CLASS_MAX_NREGS): Ditto.
625         * config/ia64/ia64.c (ia64_print_operand_address): Add R format.
626         * config/ia64/ia64.md (divsf3_internal_thr): Removed.
627         (divdf3_internal_thr): Removed.
628         * config/ia64/div.md: New file.
629         * config/ia64/constraints.md: Add H constraint.
630
631 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
632
633         * sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount,
634         sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p,
635         sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not,
636         sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg,
637         sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b,
638         sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p,
639         sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c,
640         sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c,
641         sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap,
642         dump_sbitmap_file, debug_sbitmap, popcount_table,
643         sbitmap_popcount): Constify.
644         * sbitmap.h (const_sbitmap, const_sbitmap_ptr): New.
645         (sbitmap_iterator, sbitmap_iter_init, dump_sbitmap,
646         dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal,
647         sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg,
648         sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c,
649         sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c,
650         sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b,
651         sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg,
652         sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p,
653         sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap,
654         sbitmap_popcount, sbitmap_verify_popcount): Constify.
655
656 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
657
658         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop,
659         bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits,
660         bitmap_first_set_bit, bitmap_and, bitmap_and_into,
661         bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into,
662         bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior,
663         bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p,
664         bitmap_intersect_p, bitmap_intersect_compl_p,
665         bitmap_ior_and_compl, bitmap_ior_and_compl_into,
666         debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash):
667         Constify.
668         * bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p,
669         bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and,
670         bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into,
671         bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
672         bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into,
673         debug_bitmap, debug_bitmap_file, bitmap_print,
674         bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init,
675         bmp_iter_and_init, bmp_iter_and_compl_init): Likewise.
676
677 2007-07-25  Daniel Berlin  <dberlin@dberlin.org>
678
679         * config/darwin.c (darwin_override_options): Additional fix for
680         debug info formats that don't support var tracking.
681
682 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
683
684         * cselib.c (entry_and_rtx_equal_p): Constify.
685         * gengtype.c (output_mangled_typename, write_types, write_local):
686         Likewise.
687         * gengtype.h (const_type_p): New.
688         * see.c (eq_descriptor_extension, hash_descriptor_extension):
689         Constify.
690         * tlink.c (scan_linker_output): De-constify.
691         * tree-ssa-loop-im.c (memref_eq): Constify.
692         * tree-ssa-structalias.c (const_shared_bitmap_info_t): New.
693         (shared_bitmap_hash, shared_bitmap_eq): Constify.
694
695 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
696
697         * c-common.c (fname_as_string, c_type_hash): Constify.
698         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
699         * cgraph.c (edge_hash, edge_eq): Likewise.
700         * dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise.
701         * emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash,
702         reg_attrs_htab_eq): Likewise.
703         * except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq):
704         Likewise.
705         * genautomata.c (const_reserv_sets_t, const_unit_decl_t,
706         const_decl_t, const_state_t, const_automata_list_el_t): New.
707         (first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL,
708         DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV,
709         automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash,
710         insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp,
711         reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p,
712         automata_list_hash, automata_list_eq_p, compare_states_for_equiv,
713         compare_max_occ_cycle_nums, out_state_arcs_num,
714         compare_transition_els_num, units_cmp, state_reservs_cmp):
715         Constify.
716         * genmodes.c (cmp_modes): Likewise.
717         * ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise.
718         * gimplify.c (compare_case_labels): Likewise.
719         * ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise.
720         * loop-unroll.c (si_info_hash, ve_info_hash): Likewise.
721         * matrix-reorg.c (mtt_info_hash): Likewise.
722         * postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise.
723         * rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New.
724         (htab_hash_bucket, htab_hash_elem): Constify.
725         * tree-browser.c (TB_parent_eq): Likewise.
726         * tree-scalar-evolution.c (hash_scev_info): Likewise.
727         * tree-ssa-alias.c (sort_tags_by_id): Likewise.
728         * tree-ssa-coalesce.c (const_coalesce_pair_p): New.
729         (coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs):
730         Constify.
731         * tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise.
732         * tree-ssa-pre.c (const_expr_pred_trans_t): New.
733         (expr_pred_trans_hash, expr_pred_trans_eq): Constify.
734         * tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t,
735         const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t):
736         New.
737         (vn_reference_op_eq, vn_reference_hash, vn_reference_eq,
738         vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash,
739         vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify.
740         * tree-ssa-threadupdate.c (redirection_data_hash,
741         redirection_data_eq): Likewise. 
742         * tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise.
743         * tree-ssa.c (var_ann_eq): Likewise.
744         * tree-vrp.c (compare_case_labels): Likewise.
745         * tree.c (int_cst_hash_hash, int_cst_hash_eq,
746         tree_map_base_marked_p, type_hash_marked_p, tree_check_failed,
747         tree_not_check_failed, tree_class_check_failed,
748         tree_range_check_failed, tree_not_class_check_failed,
749         omp_clause_check_failed, omp_clause_range_check_failed,
750         tree_contains_struct_check_failed, tree_operand_check_failed):
751         Likewise. 
752         * tree.h (tree_contains_struct_check_failed, tree_check_failed,
753         tree_not_check_failed, tree_class_check_failed,
754         tree_range_check_failed, tree_not_class_check_failed,
755         tree_operand_check_failed, omp_clause_operand_check_failed,
756         tree_operand_length): Likewise. 
757         * var-tracking.c (const_variable): New.
758         (variable_htab_hash, variable_htab_eq): Constify.
759         * varasm.c (const_desc_hash): Likewise.
760
761 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
762
763         * expr.c (handled_component_p): Constify.
764         * fold-const.c (fit_double_type): Likewise.
765         * real.h (real_value_from_int_cst): Likewise.
766         * tree-flow-inline.h (gimple_in_ssa_p,
767         gimple_aliases_computed_p, gimple_addressable_vars,
768         gimple_call_clobbered_vars, gimple_referenced_vars,
769         gimple_global_var, gimple_nonlocal_all, gimple_var_anns,
770         end_htab_p, end_referenced_vars_p, var_ann, function_ann,
771         may_aliases, end_readonly_imm_use_p, has_zero_uses,
772         has_single_use, single_imm_use, num_imm_uses, is_exec_stmt,
773         is_label_stmt, is_global_var, phi_ssa_name_p,
774         factoring_name_p, is_call_clobbered, tree_common_ann,
775         op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p,
776         unmodifiable_var_p, array_ref_contains_indirect_ref,
777         ref_contains_array_ref, lookup_subvars_for_var,
778         var_can_have_subvars, overlap_subvar, gimple_ssa_operands,
779         gimple_mem_ref_stats): Likewise.
780         * tree-flow.h (tree_common_ann, var_ann, function_ann,
781         may_aliases, is_exec_stmt, is_label_stmt,
782         ref_contains_array_ref, array_ref_contains_indirect_ref,
783         var_can_have_subvars, overlap_subvar, is_call_clobbered,
784         unmodifiable_var_p): Likewise.
785         * tree-gimple.c (is_gimple_min_invariant): Likewise.
786         * tree-gimple.h (is_gimple_min_invariant): Likewise. 
787         * tree.c (type_hash_list, attribute_hash_list, tree_size,
788         cst_and_fits_in_hwi, real_value_from_int_cst,
789         build_real_from_int_cst, integer_zerop, integer_onep,
790         integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2,
791         tree_floor_log2, real_zerop, real_onep, real_twop,
792         real_minus_onep, really_constant_p, purpose_member, chain_member,
793         list_length, fields_length, int_size_in_bytes, bit_position,
794         int_bit_position, byte_position, int_byte_position, expr_align,
795         array_type_nelts, tree_node_structure,
796         type_contains_placeholder_1, iterative_hash_pointer,
797         is_attribute_with_length_p, is_attribute_p, check_qualified_type,
798         tree_map_base_eq, type_hash_list, type_hash_eq,
799         attribute_hash_list, type_num_arguments, tree_int_cst_equal,
800         tree_int_cst_lt, tree_int_cst_compare, host_integerp,
801         tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
802         simple_cst_list_equal, compare_tree_int, iterative_hash_expr,
803         int_fits_type_p, get_containing_scope, decl_function_context,
804         decl_type_context, omp_clause_operand_check_failed,
805         initializer_zerop, int_cst_value, num_ending_zeros): Likewise.
806         * tree.h (omp_clause_operand_check_failed, tree_size,
807         build_real_from_int_cst, array_type_nelts, purpose_member,
808         tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare,
809         host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
810         is_attribute_p, check_qualified_type, expr_align,
811         int_size_in_bytes, bit_position, int_bit_position, byte_position,
812         int_byte_position, list_length, fields_length, initializer_zerop,
813         integer_zerop, integer_onep, integer_all_onesp, integer_pow2p,
814         integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros,
815         tree_node_structure, handled_component_p, get_containing_scope,
816         decl_function_context, decl_type_context, real_zerop,
817         type_num_arguments, fit_double_type, really_constant_p,
818         int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr,
819         compare_tree_int, chain_member, simple_cst_list_equal, real_onep,
820         real_twop, real_minus_onep, int_cst_value): Likewise.
821
822 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
823
824         * cfglayout.c (insn_scope, insn_line): Constify.
825         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq,
826         const_double_htab_hash, const_double_htab_eq,
827         mem_attrs_htab_hash): Likewise.
828         * loop-iv.c (biv_eq): Likewise.
829         * print-rtl.c (print_rtx, print_decl_name, print_mem_expr,
830         print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range,
831         debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl):
832         Likewise. 
833         * rtl-error.c (location_for_asm, diagnostic_for_asm,
834         error_for_asm, warning_for_asm, _fatal_insn,
835         _fatal_insn_not_found): Likewise. 
836         * rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat,
837         rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1,
838         rtl_check_failed_type2, rtl_check_failed_code1,
839         rtl_check_failed_code2, rtl_check_failed_code_mode,
840         rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise.
841         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
842         rtl_check_failed_type2, rtl_check_failed_code1,
843         rtl_check_failed_code2, rtl_check_failed_code_mode,
844         rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND,
845         SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs,
846         shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p,
847         get_pool_mode, insn_line, insn_file, simplify_replace_rtx,
848         mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p,
849         rtx_unstable_p, get_integer_term, get_related_value,
850         offset_within_block_p, reg_mentioned_p, count_occurrences,
851         reg_referenced_p, reg_used_between_p, no_labels_between_p,
852         single_set_2, multiple_sets, set_noop_p, refers_to_regno_p,
853         reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p,
854         find_reg_note, find_regno_note, find_reg_equal_equiv_note,
855         find_constant_src, find_reg_fusage, find_regno_fusage,
856         pure_call_p, remove_note, side_effects_p, volatile_refs_p,
857         volatile_insn_p, may_trap_p, may_trap_after_code_motion_p,
858         may_trap_or_fault_p, inequality_comparisons_p, tablejump_p,
859         computed_jump_p, auto_inc_p, in_expr_list_p,
860         remove_node_from_expr_list, loc_mentioned_in_p,
861         label_is_jump_target_p, reversed_comparison_code_parts,
862         debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find,
863         print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single,
864         print_inline_rtx): Likewise.
865         * rtlanal.c (covers_regno_p, covers_regno_no_parallel_p,
866         computed_jump_p_1, nonzero_bits1, rtx_unstable_p,
867         rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p,
868         get_integer_term, get_related_value, offset_within_block_p,
869         count_occurrences, reg_mentioned_p, no_labels_between_p,
870         reg_used_between_p, reg_referenced_p, single_set_2,
871         multiple_sets, set_noop_p, refers_to_regno_p,
872         reg_overlap_mentioned_p, dead_or_set_p,
873         covers_regno_no_parallel_p, covers_regno_p,
874         dead_or_set_regno_p, find_reg_note, find_regno_note,
875         find_reg_equal_equiv_note, find_constant_src, find_reg_fusage,
876         find_regno_fusage, pure_call_p, remove_note, in_expr_list_p,
877         remove_node_from_expr_list, volatile_insn_p, volatile_refs_p,
878         side_effects_p, may_trap_p_1, may_trap_p,
879         may_trap_after_code_motion_p, may_trap_or_fault_p,
880         inequality_comparisons_p, tablejump_p, computed_jump_p_1,
881         computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb,
882         subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise.
883         * simplify-rtx.c (neg_const_int, plus_minus_operand_p,
884         mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p):
885         Likewise. 
886         * toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm,
887         warning_for_asm): Likewise.
888         * tree.h (print_rtl): Likewise.
889         * varasm.c (get_pool_mode): Likewise.
890
891 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
892
893         * c-lex.c (c_lex_with_flags, lex_string): Constify.
894         * c-ppoutput.c (print_line, pp_dir_change): Likewise.
895         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
896         * cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
897         * cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
898         * ddg.c (compare_sccs): Likewise.
899         * df-scan.c (df_ref_compare, df_mw_compare): Likewise.
900         * dfp.c (decimal_real_from_string, decimal_to_decnumber,
901         decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
902         decimal_do_fix_trunc, decimal_real_to_integer,
903         decimal_real_to_integer2, decimal_real_maxval): Likewise.
904         * dse.c (const_group_info_t): New.
905         (invariant_group_base_eq, invariant_group_base_hash): Constify.
906         * dwarf2out.c (const_dw_die_ref): New.
907         (decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
908         * tree-browser.c (TB_parent_eq): Likewise.
909         * unwind-dw2-fde.c (__register_frame_info_bases,
910         __deregister_frame_info_bases, fde_unencoded_compare, fde_split,
911         add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
912         Likewise.
913         * unwind-dw2-fde.h (get_cie, next_fde): Likewise.
914         * unwind-dw2.c (uw_frame_state_for): Likewise.
915         * value-prof.c (histogram_hash, histogram_eq): Likewise.
916         * value-prof.h (const_histogram_value): New.
917
918 2007-07-25  Richard Sandiford  <richard@codesourcery.com>
919
920         * config/mips/mips.c (machine_function): Add
921         initialized_mips16_gp_pseudo_p.
922         (mips16_gp_pseudo_reg): Do not emit the initialization of
923         mips16_gp_pseudo_rtx when being called from the gimple cost-
924         calculation routines; emit it on the first use outside those
925         routines.
926
927 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
928
929         * coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree):
930         New.
931         
932         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
933         RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK,
934         RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3,
935         RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6,
936         RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND):
937         Preserve const-ness of parameters through use of __typeof(),
938         also constify and tidy.
939         
940         * tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2,
941         TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4,
942         NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5,
943         CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK,
944         OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK,
945         GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK,
946         PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK,
947         TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK,
948         TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise.
949
950 2007-07-25  Julian Brown  <julian@codesourcery.com>
951             Mark Shinwell  <shinwell@codesourcery.com>
952
953         * config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to...
954         (alpha_mangle_type): This.
955         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
956         (TARGET_MANGLE_TYPE): Define this instead.
957         * config/arm/arm-protos.h (arm_mangle_type): Add prototype.
958         * config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook.
959         (arm_init_neon_builtins): Fix comment.
960         (arm_mangle_map_entry): New.
961         (arm_mangle_map): New.
962         (arm_mangle_type): New.
963         * config/i386/i386.c (ix86_mangle_fundamental_type): Rename to...
964         (ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
965         mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
966         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
967         (TARGET_MANGLE_TYPE): Define this instead.
968         * config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to...
969         (ia64_mangle_type): This. Use TYPE_MAIN_VARIANT  and restrict
970         mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
971         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
972         (TARGET_MANGLE_TYPE): Define this instead.
973         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename
974         to...
975         (rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT.
976         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
977         (TARGET_MANGLE_TYPE): Define this instead.
978         * config/s390/s390.c (s390_mangle_fundamental_type): Rename to...
979         (s390_mangle_type): This.
980         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
981         (TARGET_MANGLE_TYPE): Define this instead.
982         * config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to...
983         (sparc_mangle_type): This.
984         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
985         (TARGET_MANGLE_TYPE): Define this instead.
986         * cp/mangle.c (write_type): Call mangle_type target hook on all
987         types before mangling.  Use original type, not main variant, as
988         argument.
989         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to...
990         (TARGET_MANGLE_TYPE): This.
991         * target.h (gcc_target): Rename mangle_fundamental_type to
992         mangle_type.
993         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to...
994         (TARGET_MANGLE_TYPE): This. Note slightly different semantics.
995
996 2007-07-25  Julian Brown  <julian@codesourcery.com>
997             Paul Brook  <paul@codesourcery.com>
998             Joseph Myers  <joseph@codesourcery.com>
999             Mark Shinwell  <shinwell@codesourcery.com>
1000
1001         * Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi.
1002         * config.gcc (arm*-*-*): Add arm_neon.h to extra headers.
1003         (with_fpu): Allow --with-fpu=neon.
1004         * config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
1005         * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
1006         * config/arm/arm-modes.def (EI, OI, CI, XI): New modes.
1007         * config/arm/arm-protos.h (neon_immediate_valid_for_move)
1008         (neon_immediate_valid_for_logic, neon_output_logic_immediate)
1009         (neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret)
1010         (neon_emit_pair_result_insn, neon_disambiguate_copy)
1011         (neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad)
1012         (output_move_neon): Add prototypes.
1013         * config/arm/arm.c (FL_NEON): New flag for NEON processor capability.
1014         (all_fpus): Add FPUTYPE_NEON.
1015         (fp_model_for_fpu): Add NEON field.
1016         (arm_return_in_memory): Return vectors <= 16 bytes in ARM registers.
1017         (arm_arg_partial_bytes): Allow NEON vectors to be passed partially
1018         in registers.
1019         (arm_legitimate_address_p): Don't support fancy addressing for NEON
1020         structure moves.
1021         (thumb2_legitimate_address_p): Likewise.
1022         (neon_valid_immediate): Recognize and prepare constants suitable for
1023         NEON instructions.
1024         (neon_immediate_valid_for_move): New function. Recognize and prepare
1025         immediates for NEON move instructions.
1026         (neon_immediate_valid_for_logic): New function. Recognize and
1027         prepare immediates for NEON logic instructions.
1028         (neon_output_logic_immediate): New function. Create asm string
1029         suitable for outputting immediate logic instructions.
1030         (neon_pairwise_reduce): New function. Implement reduction using
1031         pairwise operations.
1032         (neon_expand_vector_init): New function. Expand a (possibly
1033         non-constant) vector initialization.
1034         (neon_vector_mem_operand): New function. Memory operands supported
1035         for quad-word loads/stores to/from ARM or NEON registers. Don't
1036         allow base+offset addressing for core regs.
1037         (neon_struct_mem_operand): New function. Valid mems for NEON
1038         structure moves.
1039         (coproc_secondary_reload_class): Enable NEON registers to be loaded
1040         from neon_vector_mem_operand addresses without a secondary register.
1041         (add_minipool_forward_ref): Handle >8-byte minipool entries.
1042         (add_minipool_backward_ref): Likewise.
1043         (dump_minipool): Likewise.
1044         (push_minipool_fix): Likewise.
1045         (output_move_quad): New function. Output quad-word moves, loads and
1046         stores using ARM registers.
1047         (output_move_vfp): Add support for vectors in VFP (NEON) D
1048         registers.
1049         (output_move_neon): Output a NEON load/store to/from a quadword
1050         register.
1051         (arm_print_operand): Implement new codes:
1052         - 'c' for unadorned integers (without a # sign).
1053         - 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian
1054         mode.
1055         - 'e', 'f' for the low and high D parts of a NEON Q register.
1056         - 'q' outputs a NEON Q register.
1057         - 'h' outputs ranges of D registers for VLDM/VSTM etc.
1058         - 'T' prints NEON opcode features from a coded bitmask.
1059         - 'F' is similar to T, but signed/unsigned codes both print as
1060         'i'.
1061         - 't' is similar to T, but 'u' is printed instead of 'p'.
1062         - 'O' prints 'r' if NEON instruction should perform rounding (as
1063         specified by bitmask), else prints nothing.
1064         - '#' is a punctuation character to stop operand numbers from
1065         running together with following digits in the assembler
1066         strings for instructions (when using mode attributes).
1067         (arm_assemble_integer): Handle extra NEON vector modes. Permute
1068         constant vectors in big-endian mode, where necessary.
1069         (arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers.
1070         Handle EI, OI, CI, XI modes.
1071         (ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3)
1072         (ashrv2si3): Rename IWMMXT2_BUILTINs to...
1073         (ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt)
1074         (lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names.
1075         (neon_builtin_type_bits): Add enumeration, one bit for each vector
1076         type.
1077         (v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP)
1078         (v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros
1079         to turn v8qi, etc. into bits defined above.
1080         (neon_itype): New enumeration. Classifications of NEON builtins.
1081         (neon_builtin_datum): Define struct. Contains information about
1082         a single builtin (with multiple modes).
1083         (CF): Define helper macro for...
1084         (VAR1...VAR10): Define builtins with a type, name and 1-10 different
1085         modes.
1086         (neon_builtin_data): New array. Define information about builtins
1087         for use during initialization/expansion.
1088         (arm_init_neon_builtins): New function.
1089         (arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is
1090         true.
1091         (neon_builtin_compare): New function.
1092         (locate_neon_builtin_icode): New function. Find an insn code for a
1093         builtin given a function code for that builtin. Also return type of
1094         builtin (NEON_BINOP, NEON_UNOP etc.).
1095         (builtin_arg): New enumeration. Types of arguments for builtins.
1096         (arm_expand_neon_args): New function. Expand a generic NEON builtin.
1097         Takes a variable argument list of builtin_arg types, terminated by
1098         NEON_ARG_STOP.
1099         (arm_expand_neon_builtin): New function. Expand a NEON builtin.
1100         (neon_reinterpret): New function. Expand NEON reinterpret intrinsic.
1101         (neon_emit_pair_result_insn): New function. Support returning pairs
1102         of vectors via a pointer.
1103         (neon_disambiguate_copy): New function. Set up operands for a
1104         multi-word copy such that registers do not get clobbered.
1105         (arm_expand_builtin): Call arm_expand_neon_builtin if fcode >=
1106         ARM_BUILTIN_NEON_BASE.
1107         (arm_file_start): Set float-abi attribute for NEON.
1108         (arm_vector_mode_supported_p): Enable NEON vector modes.
1109         (arm_mangle_map_entry): New.
1110         (arm_mangle_map): New.
1111         (arm_mangle_vector_type): New.
1112         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__
1113         when appropriate.
1114         (TARGET_NEON): New macro. Target supports NEON.
1115         (fputype): Add FPUTYPE_NEON.
1116         (UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used
1117         for vectorization based on command-line arg.
1118         (NEON_REGNO_OK_FOR_NREGS): Define.
1119         (VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE)
1120         (VALID_NEON_STRUCT_MODE): Define.
1121         (PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation.
1122         (arm_builtins): Add ARM_BUILTIN_NEON_BASE.
1123         * config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec.
1124         (consttable_16): Add pattern for outputting 16-byte minipool
1125         entries.
1126         (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in
1127         vec-common.md).
1128         (vec-common.md, neon.md): Include md files.
1129         * config/arm/arm.opt (mvectorize-with-neon-quad): Add option.
1130         * config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define.
1131         (memory_constraint "Ut", "Un", "Us"): Define.
1132         * config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros.
1133         (MMX_char): New mode attribute.
1134         (addv8qi3, addv4hi3, addv2si3): Remove. Replace with...
1135         (*add<mode>3_iwmmxt): New insn pattern.
1136         (subv8qi3, subv4hi3, subv2si3): Remove. Replace with...
1137         (*sub<mode>3_iwmmxt): New insn pattern.
1138         (mulv4hi3): Rename to...
1139         (*mulv4hi3_iwmmxt): This.
1140         (smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3)
1141         (umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3)
1142         (uminv4hi3, uminv2si3): Remove. Replace with...
1143         (*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt)
1144         (*umin<mode>3_iwmmxt): These.
1145         (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with...
1146         (ashr<mode>3_iwmmxt): This new pattern.
1147         (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with...
1148         (lshr<mode>3_iwmmxt): This new pattern.
1149         (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with...
1150         (ashl<mode>3_iwmmxt): This new pattern.
1151         * config/arm/neon-docgen.ml: New file. Generate documentation for
1152         intrinsics.
1153         * config/arm/neon-gen.ml: New file. Generate arm_neon.h header.
1154         * config/arm/arm_neon.h: New (autogenerated).
1155         * config/arm/neon-testgen.ml: New file. Generate NEON tests
1156         automatically.
1157         * config/arm/neon.md: New file. Define NEON instructions.
1158         * config/arm/neon.ml: New file. Abstract description of NEON
1159         instructions, used to generate arm_neon.h header, documentation and
1160         tests.
1161         * config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md.
1162         * vec-common.md: New file. Shared parts for iWMMXt and NEON vector
1163         support.
1164         * doc/extend.texi (ARM Built-in Functions): Rename and remove
1165         extraneous comma.
1166         (ARM NEON Intrinsics): New subsection.
1167         * doc/arm-neon-intrinsics.texi: New (autogenerated).
1168
1169 2007-07-25  Danny Smith   <dannysmith@users.sourceforge.net>
1170
1171         * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove
1172         prototype.
1173
1174 2007-07-24  Jan Hubicka  <jh@suse.cz>
1175
1176         * regclass.c (move_table): New type.
1177         (move_cost, may_move_in_cost, may_move_out_cost): Use it.
1178         (init_move_cost): Break out from ...
1179         (init_reg_sets_1): ... here; simplify computation of
1180         have_regs-of_mode and contains_reg_of_mode.
1181         (record_reg_classes): Unswitch internal loops.
1182         (copy_cost): Trigger lazy initialization of move cost
1183         (record_address_regs): Likewise.
1184
1185 2007-07-24  Daniel Berlin  <dberlin@dberlin.org>
1186
1187         * config/darwin.c (darwin_override_options): Don't force on
1188         flag_var_tracking_uninit when no debug info is requested.
1189
1190 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
1191
1192         * cfgloop.c (init_loops_structure): New function.
1193         (flow_loops_find): Create root of the loop tree unconditionally.
1194
1195 2007-07-24  Daniel Jacobowitz  <dan@codesourcery.com>
1196
1197         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.
1198
1199 2007-07-24  Jan Hubicka  <jh@suse.cz>
1200
1201         * caller-save.c: Include ggc.h, gt-caller-save.h
1202         (reg_save_code, reg_restore_code): Rename to ...
1203         (cached_reg_save_code, cached_reg_restore_code): ... those.
1204         (savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New.
1205         (reg_save_code, reg_restore_code): New functions.
1206         (init_caller_save): Do not intialize
1207         reg_save_code/reg_restore_code tables.
1208         * Makefile.in: (gt-caller-save.h): New.
1209
1210 2007-07-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1211
1212         * tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand
1213         with the mode of the original operand instead of
1214         integer_one_node.
1215
1216 2007-07-23  Jan Hubicka  <jH@suse.cz>
1217
1218         * i386.c (ix86_secondary_memory_needed): Break out to...
1219         (inline_secondary_memory_needed): ... here.
1220         (ix86_memory_move_cost): Break out to ...
1221         (inline_memory_move_cost): ... here; add support for IN value of 2 for
1222         maximum of input and output; fix handling of Q_REGS on 64bit.
1223         (ix86_secondary_memory_needed): Microoptimize.
1224
1225 2007-07-23  Sebastian Pop  <sebpop@gmail.com>
1226
1227         * tree-data-ref.c (find_vertex_for_stmt, create_rdg_edge_for_ddr,
1228         create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
1229         stmts_from_loop, known_dependences_p, build_rdg): New.
1230         * tree-data-ref.h: Depends on graphds.h.
1231         (rdg_vertex, RDGV_STMT, rdg_dep_type, rdg_edge, RDGE_TYPE): New.
1232         (build_rdg): Declared.
1233         * Makefile.in (TREE_DATA_REF_H): Depends on graphds.h.
1234
1235 2007-07-23  Daniel Berlin  <dberlin@dberlin.org>
1236
1237         * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
1238         ccp_min_invariant.
1239
1240 2007-07-23  Peter Bergner  <bergner@vnet.ibm.com>
1241             Jakub Jelinek  <jakub@redhat.com>
1242
1243         PR middle-end/PR28690
1244         * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow EQ compares.
1245         * rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER
1246         and MEM_POINTER operands over REG and MEM operands.
1247         (swap_commutative_operands_p): Change return value to bool.
1248         * rtl.h: Update the corresponding prototype.
1249         * tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary
1250         instead of gen_rtx_PLUS.
1251         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return
1252         value to bool.  Change function arguments to rtx's and update code
1253         to match.
1254         (simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp
1255         calls to match the new declaration.
1256         * simplify-rtx.c (simplify_associative_operation): Don't
1257         reorder simplify_binary_operation arguments.
1258
1259 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
1260
1261         * config/mips/mips.c (override_options): Use mips_costs to derive
1262         the default branch cost.
1263         * config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather
1264         than mips_costs.
1265         * config/mips/mips.opt (mbranch-cost=): New option.
1266         * doc/invoke.texi (-mbranch-cost): Document new MIPS option.
1267
1268 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
1269
1270         * config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete.
1271         (SECONDARY_MEMORY_NEEDED): Delete commented-out definition.
1272         * config/mips/mips.c (mips_register_move_cost): Use reg_class_subset_p
1273         instead of GR_REG_CLASS_P and COP_REG_CLASS_P.
1274
1275 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
1276
1277         * config/mips/constraints.md (ks): New constraint.
1278         * config/mips/mips.md (*add<mode>3_sp1, *add<mode>3_sp2): Fold into...
1279         (*add<mode>3_mips16): ...here.
1280
1281 2007-07-21  Uros Bizjak  <ubizjak@gmail.com>
1282
1283         * optabs.h (enum optab_index): Add new OTI_signbit.
1284         (signbit_optab): Define corresponding macro.
1285         (enum insn_code signbit_optab[]): Remove array.
1286         * optabs.c (init_optabs): Initialize signbit_optab using init_optab.
1287         (expand_copysign_absneg): If back end provides signbit insn, use it
1288         instead of bit operations on floating point argument.
1289         * builtins.c (enum insn_code signbit_optab[]): Remove array.
1290         (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code for
1291         availability of signbit insn.
1292
1293         * config/i386/i386.md (signbit<mode>2): New insn pattern to implement
1294         signbitf, signbit and signbitl built-ins as inline x87 intrinsics when
1295         SSE mode is not active.
1296         (isinf<mode>2): Disable for mfpmath=sse,387.
1297
1298 2007-07-22  Ben Elliston  <bje@au.ibm.com>
1299
1300         * regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to
1301         `class' parameter.
1302         * struct-equiv.c (note_local_live): Likewise for `y_regno'.
1303
1304 2007-07-20  Richard Guenther  <rguenther@suse.de>
1305
1306         * tree-cfg.c (verify_expr): COND_EXPRs can have any
1307         integral typed condition.
1308         * tree-ssa.c (useless_type_conversion_p): Do not preserve
1309         booleanness.  Only preserve conversions from a non-base
1310         type to a base type, not in general between types with
1311         different TYPE_MIN_VALUE or TYPE_MAX_VALUE.
1312         * tree.def (COND_EXPR): Document that the condition
1313         can be of any integral type.
1314
1315 2007-07-20  Nigel Stephens  <nigel@mips.com>
1316             Richard Sandiford  <richard@codesourcery.com>
1317
1318         * config/mips/mips.h (mips_dwarf_regno): Declare.
1319         (DBX_REGISTER_NUMBER): Remove redundant brackets.
1320         (HI_REGNUM, LO_REGNUM): Define in an endian-dependent way.
1321         (AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM)
1322         (AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete.
1323         (reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
1324         (REG_CLASS_NAMES): Update accordingly.
1325         * config/mips/mips.c (mips_dwarf_regno): New array.
1326         (mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
1327         (mips_subword): Remove special handling for accumulator registers.
1328         (override_options): Initiailize mips_dwarf_regno.  Remove use
1329         of ACC_HI_REG_P.
1330         (mips_swap_registers): New function.
1331         (mips_conditional_register_usage): Swap accumulator registers
1332         around if TARGET_LITTLE_ENDIAN.
1333         (mips_cannot_change_mode_class): Remove special treatment of ACC_REGS.
1334         * config/mips/constraints.md (h, l): Use the endianness to choose
1335         between MD0_REG and MD1_REG.
1336         * config/mips/mips.md (*mfhilo_<mode>_macc): Use a fixed-string,
1337         alternative-dependent template.
1338
1339 2007-07-20  Richard Sandiford  <richard@codesourcery.com>
1340
1341         * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of
1342         no_new_pseudos.
1343
1344 2007-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
1345
1346         * function.c (thread_prologue_and_epilogue_insns): Fix exit
1347         predecessor fallthru flags.
1348
1349 2007-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
1350
1351         * tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands
1352         of compare to the same type.
1353         * cfgloopmanip.c (add_loop): Update information about loop exits.
1354         (loop_version): Remove the innermost loop requirement.
1355         * tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds
1356         to sizetype for pointers.
1357
1358 2007-07-18  H.J. Lu  <hongjiu.lu@intel.com>
1359
1360         * Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd.
1361         (D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd.
1362         (D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td.
1363
1364         * config/dfp-bit.c: Empty for TFmode conversions.
1365
1366 2007-07-18  Caroline Tice  <ctice@apple.com>
1367         
1368         * var-tracking.c (find_src_status):  Check for  COND_EXEC insns
1369         and handle them correctly; check that src is not NULL before
1370         trying to use it.
1371         (find_src_set_src): Likewise.
1372         
1373 2007-07-18  Bob Wilson  <bob.wilson@acm.org>
1374         
1375         * config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New.
1376         (struct alignment_context, init_alignment_context): New.
1377         (xtensa_expand_compare_and_swap, xtensa_expand_atomic): New.
1378         * config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default.
1379         (XCHAL_HAVE_S32C1I): Likewise.
1380         (TARGET_RELEASE_SYNC, TARGET_S32C1I): New.
1381         * config/xtensa/xtensa.md (UNSPECV_MEMW): New constant.
1382         (UNSPECV_S32RI, UNSPECV_S32C1I): Likewise.
1383         (ATOMIC, HQI): New macros.
1384         (memory_barrier, *memory_barrier): New.
1385         (sync_lock_releasesi): New.
1386         (sync_compare_and_swapsi, sync_compare_and_swap<mode>): New.
1387         (sync_lock_test_and_set<mode>): New.
1388         (sync_<atomic><mode>): New.
1389         (sync_old_<atomic><mode>, sync_new_<atomic><mode>): New.
1390         * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New.
1391         (xtensa_expand_atomic): New.
1392         
1393 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1394
1395         PR target/30652
1396
1397         * builtins.c (expand_builtin_interclass_mathfn): Provide a generic
1398         transformation for builtin ISNORMAL.
1399         (expand_builtin): Handle BUILT_IN_ISNORMAL.
1400         * builtins.def (BUILT_IN_ISNORMAL): New.
1401         * doc/extend.texi: Document isnormal.
1402
1403 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1404
1405         PR target/30652
1406
1407         * builtins.c (expand_builtin_interclass_mathfn): Allow for missing
1408         optabs infrastructure.  Provide generic implementation for
1409         FINITE/ISFINITE.
1410         (expand_builtin): Handle FINITE/ISFINITE.
1411         (fold_builtin_classify): Make ISFINITE canonical instead of FINITE.
1412         (fold_builtin_1): Likewise.
1413
1414         * builtins.def (BUILT_IN_ISFINITE): New.
1415
1416         * doc/extend.texi: Document isfinite.
1417
1418 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1419
1420         PR target/30652
1421         PR middle-end/20558
1422
1423         * builtins.c (expand_builtin_interclass_mathfn): Provide a
1424         generic fallback for isinf.
1425         * c-cppbuiltin.c (builtin_define_float_constants): Move FP max
1426         calculation code ...
1427         * real.c (get_max_float): ... to here.
1428         * real.h (get_max_float): New.
1429
1430 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1431
1432         PR middle-end/32668
1433
1434         * builtin-attrs.def (ATTR_TYPEGENERIC,
1435         ATTR_CONST_NOTHROW_TYPEGENERIC): New.
1436
1437         * builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN,
1438         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1439         BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER,
1440         BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC.
1441
1442         * c-common.c (handle_type_generic_attribute): New.
1443         (c_common_attribute_table): Add "type generic".
1444
1445         * c-typeck.c (convert_arguments): Handle "type generic" functions.
1446
1447 2007-07-18  Daniel Berlin  <dberlin@dberlin.org>
1448
1449         * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
1450         * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
1451         properly.
1452
1453 2007-07-18  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1454
1455         PR target/32808
1456         * config/cris/cris.c (cris_print_index): Don't use XEXP before
1457         checking that the operand is an expression.
1458
1459 2007-07-19  Christoph von Wittich  <Christoph_vW@reactos.org>
1460             Danny Smith  <dannysmith@users.sourceforge.net>
1461
1462         PR/other 30335
1463         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put
1464         file mapping object in local namespace if Windows version later
1465         than NT4
1466
1467 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
1468
1469         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare.
1470         * config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
1471         arm_cannot_force_const_mem.
1472         (arm_cannot_force_const_mem): New function.
1473         * config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro.
1474         (LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead
1475         of arm_tls_referenced_p.
1476         * config/arm/arm.md (movsi): Split out-of-section constants when
1477         ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P.
1478         * config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
1479
1480 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
1481
1482         * config/mips/mips.md (clear_cache): Treat the size argument as Pmode.
1483
1484 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
1485
1486         * config/mips/mips.md (*extendqihi2): Convert the destination
1487         to SImode.
1488
1489 2007-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1490
1491         * config/pa/fptr.c: Update license header.
1492         * config/pa/milli64.S: Likewise.
1493
1494 2007-07-17  Nick Clifton  <nickc@redhat.com>
1495
1496         * COPYING_v3: New file.  Contains version 3 of the GNU General
1497         Public License.
1498         * COPYING.LIB_v3: New file.  Contains version 3 of the GNU
1499         Lesser General Public License.
1500         * doc/include/gpl_v3.texi: New file.  Contains version 3 of
1501         the GNU General Public License.
1502
1503 2007-07-17  Zdenek Dvorak  <dvorakz@suse.cz>
1504
1505         PR rtl-optimization/32773
1506         * cfglayout.c (force_one_exit_fallthru): New function.
1507         (cfg_layout_finalize): Use it.
1508
1509 2007-07-16  Richard Guenther  <rguenther@suse.de>
1510             Uros Bizjak  <ubizjak@gmail.com>
1511
1512         * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
1513         before forcing it to gimple operand.
1514
1515 2007-07-16  Sandra Loosemore  <sandra@codesourcery.com>
1516             David Ung  <davidu@mips.com>
1517
1518         * config/mips/mips.h (TUNE_24K): Define.
1519         (TUNE_MACC_CHAINS): Add TUNE_24K.
1520         * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to
1521         imadd.
1522         * config/mips/74k.md (r74k_int_mult): Split madd/msub to ..
1523         (r74k_int_madd): .. this new reservation.
1524         (define_bypass): Fixed bypasses for r74k_int_madd to use
1525         mips_linked_madd_p.
1526         * config/mips/24k.md (define_bypass): Define new
1527         r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p.
1528
1529 2007-07-16  Sandra Loosemore  <sandra@codesourcery.com>
1530             Nigel Stephens  <nigel@mips.com>
1531
1532         * config/mips/mips.md:  Include 20kc.md.
1533         * config/mips/20kc.md: New file.
1534         * config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs.
1535         (mips_adjust_cost): Tweak for 20Kc.
1536         (mips_issue_rate): Likewise.
1537         * config/mips/mips.h (TUNE_20KC): Define.
1538
1539 2007-07-16  David Edelsohn  <edelsohn@gnu.og>
1540
1541         * config/rs6000/rs6000.c (struct processor_cost): Add
1542         cache_line_size, l1_cache_lines, and simultaneous_prefetches
1543         fields.
1544         (*_cost): Add cache information.
1545         (rs6000_override_options): Set cache parameters.
1546
1547 2007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1548
1549         PR bootstrap/3456
1550         * config.gcc (mips-sgi-irix[56]*): Enable pthread support.
1551         * doc/install.texi (mips-sgi-irix6): pthread support works now.
1552
1553 2007-07-16  Paul Brook  <paul@codesourcery.com>
1554
1555         PR target/32753
1556         * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
1557         (cirrus_thumb2_movsi_insn): Ditto.
1558
1559 2007-07-15  Geoffrey Keating  <geoffk@apple.com>
1560
1561         * config/rs6000/darwin-fallback.c (interpret_libc): Change
1562         CR2_REGNO to R_CR2.
1563
1564 2007-07-15  Andrew Haley  <aph@redhat.com>
1565
1566         * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL
1567         before looking in the context.
1568
1569 2007-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1570
1571         PR middle-end/32398
1572         PR middle-end/32769
1573         * pa-protos.h (pa_eh_return_handler_rtx): Declare.
1574         * pa.c (pa_extra_live_on_entry, rp_saved): Declare.
1575         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
1576         (pa_output_function_prologue): Use rp_saved and current_function_is_leaf
1577         to generate .CALLINFO statement.
1578         (hppa_expand_prologue): Set rp_saved.
1579         (hppa_expand_epilogue): Use rp_saved.
1580         (pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions.
1581         * pa.h (EH_RETURN_HANDLER_RTX): Use pa_eh_return_handler_rtx.
1582
1583 2007-07-14  Dirk Mueller  <dmueller@suse.de>
1584
1585         * omega.c (coalesce): Fix memory leak on early exit.
1586         * matrix-reorg.c (check_allocation_function): Likewise.
1587         * tree-vect-transform.c (vect_get_new_vect_var): free result
1588         of concat().
1589         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
1590         pass pointer to edge vector
1591         (partition_hot_cold_basic_blocks): Fix memory leak.
1592         * collect2.c (prefix_from_string): Free temporary storage.
1593         * reload1.c (fixup_abnormal_edges): Free sbitmap.
1594
1595 2007-07-14  Kaz Kojima  <kkojima@gcc.gnu.org>
1596
1597         * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype.
1598         (DO_GLOBAL_DTORS_BODY): Likewise.
1599
1600 2007-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1601             Nigel Stephens  <nigel@mips.com>
1602
1603         * config/mips/mips.c (mips_classify_symbol): Don't return
1604         SYMBOL_SMALL_DATA for constant pool addresses if
1605         TARGET_EMBEDDED_DATA is true.
1606
1607 2007-07-14  Uros Bizjak  <ubizjak@gmail.com>
1608
1609         * config/i386/i386.c (init_mmx_sse_builtins): Define all builtins
1610         except __builtin_ia32_emms, __builtin_ia32_ldmxcsr,
1611         __builtin_ia32_stmxcsr, __builtin_ia32_maskmovq, __builtin_ia32_loadups,
1612         __builtin_ia32_storeups, __builtin_ia32_loadhps, __builtin_ia32_loadlps,
1613         __builtin_ia32_storehps, __builtin_ia32_storelps,
1614         __builtin_ia32_movntps, __builtin_ia32_movntq, __builtin_ia32_sfence,
1615         __builtin_ia32_femms, __builtin_ia32_maskmovdqu, __builtin_ia32_loadupd,
1616         __builtin_ia32_storeupd, __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
1617         __builtin_ia32_movnti, __builtin_ia32_movntpd, __builtin_ia32_movntdq,
1618         __builtin_ia32_clflush, __builtin_ia32_lfence, __builtin_ia32_mfence,
1619         __builtin_ia32_loaddqu, __builtin_ia32_storedqu, __builtin_ia32_monitor,
1620         __builtin_ia32_mwait, __builtin_ia32_lddqu, __builtin_ia32_movntdqa,
1621         __builtin_ia32_movntsd and __builtin_ia32_movntss as const builtins
1622         using def_builtin_const.
1623
1624 2007-07-14  Eric Botcazou  <ebotcazou@adacore.com>
1625
1626         PR tree-optimization/32705
1627         * tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number.
1628         (simplify_binary_expression): Use SSA_VAL consistently.
1629
1630 2007-07-13  David Edelsohn  <edelsohn@gnu.org>
1631
1632         * config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition.
1633         (SPEFSCR_REGNO): Delete definition.
1634         * config/rs6000/rs6000.c: LINK_REGISTER_REGNUM -> LR_REGNO.
1635         COUNT_REGISTER_REGNUM -> CTR_REGNO.
1636         * config/rs6000/rs6000.h: Do not define *_REGNO.
1637         LINK_REGISTER_REGNUM -> LR_REGNO.
1638         COUNT_REGISTER_REGNUM -> CTR_REGNO.
1639         * config/rs6000/predicates.md: LINK_REGISTER_REGNUM ->  LR_REGNO.
1640         COUNT_REGISTER_REGNUM -> CTR_REGNO.
1641         * config/rs6000/linux-unwind.h: Define R_LR, R_CR2, R_VR0,
1642         R_VRSAVE, R_VSCR. Use them.
1643         * config/rs6000/darwin-fallback.c: Define R_LR, R_CTR, R_CR2,
1644         R_XER, R_VR0, R_VRSAVE, R_VSCR, R_SPEFSCR.  Use them.
1645         * config/rs6000/rs6000.md: Define REGNO constants.  Use them.
1646         * config/rs6000/aix.h: Define R_LR.  Use it.
1647         
1648 2007-07-13  Caroline Tice  <ctice@apple.com>
1649         
1650         * toplev.c (process_options): Turn flag_var_tracking_uninit off when
1651         flag_var_tracking is explicitly turned off (i.e. when variable
1652         tracking is not feasible); otherwise, turn flag_var_tracking on when
1653         flag_var_tracking_uninit is on.
1654         * rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION
1655         note definitions, to allow recording of initialization status in the
1656         notes.
1657         * dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit.
1658         (add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to
1659         determine if two note locations are equal.
1660         (output_loc_list): Don't output list entries whose start & end labels
1661         are the same.
1662         (reg_loc_descriptor): Add parameter for initialization status; pass it
1663         to other loc descriptor functions.
1664         (one_reg_loc_descriptor): Add parameter for initialization status;
1665         check its value and add DW_OP_GNU_uninit to returned loc descr if
1666         appropriate.
1667         (multiple_reg_loc_descriptor): Add parameter for initialization
1668         status;
1669         pass init status argument to other loc descriptor functions; check
1670         value of intialization parameter and add DW_OP_GNU_uninit to returned
1671         loc descr if appropriate.
1672         (based_loc_descr): Add parameter for initialization status; add new
1673         variable for return value; check value of initialization parameter and
1674         add DW_OP_GNU_uninit to returned loc descr if appropriate.
1675         (concatn_mem_loc_descriptor): Add parameter for initialization status;
1676         pass init status argument to other loc descriptor functions; check
1677         value of intialization parameter and add DW_OP_GNU_uninit to returned
1678         loc descr if appropriate.
1679         (mem_loc_descriptor): Likewise.
1680         (concat_loc_descriptor): Likewise.
1681         (concatn_loc_descriptor): Likewise.
1682         (loc_descriptor): Add parameter for initialization status; pass it as
1683         argument to other loc descriptor function calls.
1684         (loc_descriptor_from_tree_1): Add appropriate initialization status
1685         to loc descriptor function calls.
1686         (add_location_or_const_value_attribute): Get initialization status
1687         from VAR_LOCATION note; add initialization status to loc descriptor
1688         function calls.
1689         * dwarf2.h (enum dwarf_location_atom): New op, DW_OP_GNU_uninit.
1690         * print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if
1691         status is uninitialized, add "[uninint]" to output.
1692         * common.opt (fvar-tracking-uninit): New option, similar to
1693         fvar-tracking, to turn on tracking of uninitialized variables; creates
1694         a new global flag, flag_var_tracking_uninit.
1695         * rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field.
1696         (enum var_init_status): New type, for var initialization status field.
1697         * var-tracking.c (struct location_chain_def): Two new fields, init,
1698         for initialization status, and set_src for the assignment value expr.
1699         (unshare_variable): New parameter for initialization status;
1700         initialize new init and set_src fields.
1701         (var_reg_set): New parameters for initialization status and value;
1702         pass them to set_variable_part.
1703         (var_mem_set): Likewise.
1704         (get_init_value): New function.
1705         (var_reg_delete_and_set): New initialization status & value
1706         parameters; add call to get_init_value if status is unknown; pass new
1707         parameters to clobber_variable_part and var_reg_set.
1708         (var_mem_delete_and_set): Likewise.
1709         (var_reg_delete): Pass null set_src value to clobber_variable_part.
1710         (var_mem_delete): Likewise.
1711         (variable_union): Pass status to unshare_variable; initialize new init
1712         and set_src fields. If flag_var_tracking_uninit is not set, force
1713         status to initialized.
1714         (add_stores): Store insn, rather than NEXT_INSN(insn), so it can be
1715         used later to get the set_src value.
1716         (find_src_status): New function.
1717         (find_src_set_src): New function.
1718         (compute_bb_dataflow): Pass init status to calls to var_reg_set,
1719         var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for
1720         MO_SET, get set_src value and pass it to var_reg_delete_and_set
1721         and var_mem_delete_and_set.
1722         (dump_variable): Print out "[uninit]" if appropriate.
1723         (set_variable_part): Add new initialization and set_src parameters;
1724         pass status to unshare_variable; set node->init and node- >set_src
1725         fields and modify slot in hash table appropriately; save the init and
1726         set_src values if appropriate and assign to the new node.
1727         (clobber_variable_part): New set_src parameter; if two nodes have
1728         same variable and same location but different set_src (assignment)
1729         values, clobber old node.
1730         (delete_variable_part): Pass init status to unshare_variable.
1731         (emit_note_insn_var_location): Add initialized var; assign var's init
1732         status to new 'initialized'; pass new init status field to calls to
1733         gen_rtx_VAR_LOCATION. If flag_var_tracking_uninit is not set, force
1734         status to initialized.
1735         (emit_notes_in_bb): Pass initialization status to calls to
1736         var_reg_set, var_mem_set, var_reg_delete_and_set and
1737         var_mem_delete_and_set; for MO_SET, get set_src value and pass it to
1738         var_reg_delete_and_set and var_mem_delete_and_set; call
1739         emit_notes_for_changes on NEXT_INSN(insn) rather than on insn, to
1740         make up for change in add_stores.
1741         (vt_add_function_parameters): Add status to calls to
1742         set_variable_part.
1743         * config/darwin.c (darwin_override_options): Turn on uninitialized
1744         tracking automatically, if var_tracking is on and the system is
1745         10.5 or higher.
1746         
1747 2007-07-13  Sa Liu  <saliu@de.ibm.com>
1748
1749         * config.gcc: Add options for arch and tune on SPU.
1750         * config/spu/predicates.md: Add constant operands 0 and 1.
1751         * config/spu/spu-builtins.def: Add builtins for double precision 
1752         floating point comparison: si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, 
1753         si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1,
1754         spu_testsv.
1755         * config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with 
1756         a CELLEDP target.
1757         * config/spu/spu-protos.h: Add new function prototypes. 
1758         * config/spu/spu.c (spu_override_options): Check options -march and
1759         -mtune.
1760         (spu_comp_icode): Add comparison code for DFmode and vector mode.
1761         (spu_emit_branch_or_set): Use the new code for DFmode and vector 
1762         mode comparison.
1763         (spu_const_from_int): New.  Create a vector constant from 4 ints.
1764         (get_vec_cmp_insn): New.  Get insn index of vector compare instruction.
1765         (spu_emit_vector_compare): New.  Emit vector compare.
1766         (spu_emit_vector_cond_expr): New.  Emit vector conditional expression.
1767         * config/spu/spu.h: Add options -march and -mtune.  Define processor
1768         types PROCESSOR_CELL and PROCESSOR_CELLEDP.  Define macro
1769         CANONICALIZE_COMPARISON.
1770         * config/spu/spu.md: Add new insns for double precision compare
1771         and double precision vector compare.  Add vcond and smax/smin patterns
1772         to enable DFmode vector conditional expression.
1773         * config/spu/spu.opt: Add options -march and -mtune.
1774         * config/spu/spu_internals.h: Add builtins for CELLEDP target:
1775         si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv.  Add builtin for
1776         both CELL and CELLEDP targets: spu_testsv.
1777         * config/spu/spu_intrinsics.h: Add flag mnemonics for test special 
1778         values.
1779
1780 2007-07-13  Richard Guenther  <rguenther@suse.de>
1781
1782         PR tree-optimization/32721
1783         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Preserve
1784         TREE_THIS_VOLATILE on the folded reference.
1785         * tree-ssa-operands.c (get_expr_operands): Set has_volatile_ops
1786         if the array reference has TREE_THIS_VOLATILE set.
1787
1788 2007-07-13  H.J. Lu  <hongjiu.lu@intel.com>
1789
1790         PR other/32188
1791         * doc/libgcc.texi: Update DFP intrinsics for DPD and BID.
1792
1793 2007-07-13  Andreas Schwab  <schwab@suse.de>
1794
1795         * gengtype-lex.l: Allow declarations to be indented.
1796
1797 2007-07-12  Geoffrey Keating  <geoffk@apple.com>
1798
1799         * ginclude/tgmath.h: New.
1800         * config.gcc: Use GCC's tgmath.h on non-glibc systems.
1801         * doc/sourcebuild.texi (Headers): Document use_gcc_tgmath.
1802         * configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath.
1803         * configure: Regenerate.
1804
1805 2007-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1806
1807         * config/sh/linux-unwind.h (sh_fallback_frame_state): Use
1808         correct index when setting register save state for xd
1809         registers.
1810
1811 2007-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1812
1813         * config/sh/sh.c (mark_use): Remove.
1814
1815 2007-07-12  Paul Brook  <paul@codesourcery.com>
1816
1817         * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch
1818         reg does not overlap return value.
1819
1820 2007-07-12  Daniel Berlin  <dberlin@dberlin.org>
1821
1822         * tree-ssa-pre.c (get_expression_vuses): Move out side-effect.
1823         (set_expression_vuses): Ditto.
1824         (init_pre): Initialize expression_vuses.
1825
1826 2007-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
1827
1828         * config/i386/sse.md (storentdf, storentsf): New.
1829
1830 2007-07-12  Geoffrey Keating  <geoffk@apple.com>
1831
1832         * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
1833         FUNCTION_DECL.
1834         * tree.c (build_decl_stat): Move code from here...
1835         (make_node_stat): ... to here.  Don't uselessly clear DECL_USER_ALIGN.
1836         (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL.  Add comment
1837         about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
1838         * tree.h (DECL_USER_ALIGN): Fix misplaced comment.
1839         * varasm.c (assemble_start_function): Use DECL_ALIGN instead of
1840         FUNCTION_BOUNDARY.
1841
1842 2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>
1843             Devang Patel  <dpatel@apple.com>
1844
1845         PR tree-optimization/25413
1846         * targhooks.c (default_builtin_vector_alignment_reachable): New.
1847         * targhooks.h (default_builtin_vector_alignment_reachable): New.
1848         * tree.h (contains_packed_reference): New.
1849         * expr.c (contains_packed_reference): New.
1850         * tree-vect-analyze.c (vector_alignment_reachable_p): New.
1851         (vect_enhance_data_refs_alignment): Call
1852         vector_alignment_reachable_p.
1853         * target.h (vector_alignment_reachable): New builtin.
1854         * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
1855         * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
1856         (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
1857
1858 2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>
1859
1860         * target.h (builtin_vectorization_cost): Add new target builtin.
1861         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
1862         * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
1863         (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
1864         * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
1865         uninitialized variables.
1866         * tree-vect-transform.c (cost_for_stmt): New function.
1867         (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
1868         using cost 1 for all scalar stmts. Be less conservative when
1869         estimating the number of prologue/epulogue iterations. Call
1870         targetm.vectorize.builtin_vectorization_cost. Return
1871         min_profitable_iters-1.
1872         (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
1873         initialization cost instead of TARG_VEC_STMT_COST. Use
1874         TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
1875         epilogue code. Fix epilogue cost computation.
1876         * config/spu/spu.c (spu_builtin_vectorization_cost): New.
1877         (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
1878         * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
1879         (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
1880         (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
1881         (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.
1882
1883 2007-07-12  Richard Guenther  <rguenther@suse.de>
1884
1885         * gimplify.c (gimplify_conversion): Make sure that the result
1886         from maybe_fold_offset_to_reference is trivially convertible
1887         to the desired type before doing the simplification.
1888         (gimplify_expr): Likewise.
1889         * fold-const.c (fold_binary): Use the correct types for
1890         building the simplified expression.
1891
1892 2007-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
1893
1894         PR rtl-optimization/32729
1895         * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
1896         that fallthru to exit.
1897
1898 2007-07-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1899
1900         * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
1901         (symDTPOFF2reg): Likewise.
1902
1903 2007-07-11  Daniel Berlin  <dberlin@dberlin.org>
1904
1905         PR tree-optimization/32663
1906         
1907         * tree.h (VALUE_HANDLE_VUSES): Remove.
1908         (struct tree_value_handle): Remove vuses.
1909
1910         * tree-vn.c (create_value_handle_for_expr): Don't set
1911         VALUE_HANDLE_VUSES. 
1912
1913         * tree-ssa-pre.c (expression_vuses): New.
1914         (alloc_expression_id): Set up expression_vuses.
1915         (get_expression_vuses): New.
1916         (set_expression_vuses): Ditto.
1917         (clear_expression_ids): Modify for expression_vuses.
1918         (phi_translate_1): Ditto.
1919         (phi_translate_set): Ditto.
1920         (value_dies_in_block_x): Ditto
1921         (valid_in_sets): Ditto.
1922         (add_to_sets): Ditto.
1923         (find_existing_value_expr): Ditto.
1924         (create_value_handle_for_expr): Ditto.
1925         (make_values_for_stmt): Ditto.
1926         (vuse_equiv): Remove.
1927
1928 2007-07-11  Alexandre Oliva  <aoliva@redhat.com>
1929
1930         * Makefile.in (mostlyclean): Remove object files.
1931
1932 2007-07-11  Kenneth Zadeck <zadeck@naturalbridge.com>
1933
1934         * toplev.c (no_new_pseudos): Deleted.
1935         * rtl.h (no_new_pseudos): Deleted.
1936         * tree-pass.h (pass_no_new_pseudos): Deleted. 
1937         * passes.c (pass_no_new_pseudos): Deleted.
1938         * final.c (rest_of_clean_state): Removed no_new_pseudos.
1939         (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
1940         * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with 
1941         reload_completed.
1942         * cfgcleanup.c (try_crossjump_to_edge): Ditto. 
1943         * rtlhooks.c (gen_lowpart_general): Ditto.
1944         * optabs.c (prepare_operand): Ditto.
1945         * mode-switching.c (rest_of_handle_mode_switching): Deleted set of
1946         no_new_pseudos.
1947         * modulo-sched.c (rest_of_handle_sms): Ditto.
1948         * see.c (rest_of_handle_see): Ditto.
1949         * ifcvt.c (if_convert): Ditto.
1950         (gate_handle_if_after_combine): Replaced no_new_pseudos with 
1951         reload_completed.
1952         * init-regs.c (gate_initialize_regs): Deleted set of
1953         no_new_pseudos.
1954         * lower-subreg.c (decompose_multiword_subregs): Ditto. 
1955         * bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
1956         * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.
1957         
1958 2007-07-11  Uros Bizjak  <ubizjak@gmail.com>
1959
1960         PR target/32661
1961         * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves.
1962         (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT.
1963         (*vec_extractv2di_1_rex64): New insn pattern.
1964
1965 2007-07-11  David Daney  <ddaney@avtrex.com>
1966
1967         * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite
1968         return address calculation.  Substitute DWARF_ALT_FRAME_RETURN_COLUMN
1969         for SIGNAL_UNWIND_RETURN_COLUMN.
1970         * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove.
1971         (DWARF_FRAME_REGNUM): Rewrite.
1972         (DWARF_ALT_FRAME_RETURN_COLUMN) Define.
1973
1974 2007-07-11  Nick Clifton  <nickc@redhat.com>
1975
1976         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous
1977         delta and use gen_int_mode in place of GET_INT instead.
1978
1979 2007-07-11  Uros Bizjak  <ubizjak@gmail.com>
1980
1981         * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
1982         and letter field.
1983
1984 2007-07-11  Douglas Gregor  <doug.gregor@gmail.com>
1985
1986         * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
1987         (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical 
1988         types or not.
1989         * params.h (VERIFY_CANONICAL_TYPES): Remove.
1990         (USE_CANONICAL_TYPES): New.
1991         * doc/invoke.texi (verify-canonical-types): Remove.
1992         (use-canonical-types): Add.
1993
1994 2007-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
1995
1996         * config/spu/spu.c (spu_optimization_options): Remove setting of
1997         parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
1998         (spu_override_options): Move it here.
1999
2000 2007-07-11  Richard Sandiford  <richard@codesourcery.com>
2001
2002         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd.
2003         * config/mips/mips.c (mips_cpu_info_table): Mention
2004         MIPS_ISA_LEVEL_SPEC in the comment.
2005
2006 2007-07-11  Eric Botcazou  <ebotcazou@adacore.com>
2007
2008         PR tree-optimization/32713
2009         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.
2010
2011 2007-07-11  Paolo Carlini  <pcarlini@suse.de>
2012
2013         PR middle-end/30482
2014         * c-opts.c (c_common_post_options): Do not change flag_complex_method
2015         conditional to flag_isoc99.
2016         (c_common_init_options): Do it here, unconditionally.
2017
2018 2007-07-11  Eric Botcazou  <ebotcazou@adacore.com>
2019
2020         PR tree-optimization/32589
2021         * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
2022         * tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
2023         * tree-ssa-propagate.c (valid_gimple_expression_p): New
2024         predicate, extracted from...
2025         (set_rhs): ...here.  Call it for the expression on entry.
2026         * tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
2027         * tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
2028         (simplify_binary_expression): Use valid_gimple_expression_p
2029         to validate the simplification.
2030         * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.
2031
2032 2007-07-11  Danny Smith  <dannysmith@users.sourceforge.net>
2033
2034         * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
2035         DWARF2_DEBUG on 32 bit target too.
2036         (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition. 
2037
2038 2007-07-11  Nick Clifton  <nickc@redhat.com>
2039
2040         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative
2041         version for 64-bit hosts.
2042
2043 2007-07-10  David Daney  <ddaney@avtrex.com>
2044
2045         * config/mips/mips.h (ISA_HAS_SYNCI): New target capability
2046         predicate.
2047         (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of  library
2048         call.
2049         * config/mips/mips.c (mips_expand_synci_loop): New function.
2050         * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant.
2051         (UNSPEC_RDHWR): Same.
2052         (UNSPEC_SYNCI): Same.
2053         (UNSPEC_SYNC): Same.
2054         (clear_cache): New expand.
2055         (sync): New insn.
2056         (synci): Same.
2057         (rdhwr): Same.
2058         (clear_hazard): Same.
2059         * config/mips/mips-protos.h (mips_expand_synci_loop): Declare
2060         function.
2061         * testsuite/gcc.target/mips/clear-cache-1.c: New test.
2062         * testsuite/gcc.target/mips/clear-cache-2.c: New test.
2063
2064 2007-07-10  Ian Lance Taylor  <iant@google.com>
2065
2066         * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
2067         no_new_pseudos.
2068
2069 2007-07-10  David Daney  <ddaney@avtrex.com>
2070
2071         * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
2072         * builtins.c (expand_builtin___clear_cache): New function.
2073         (expand_builtin): Call expand_builtin___clear_cache for
2074         BUILT_IN_CLEAR_CACHE case.
2075         * doc/extend.texi (__builtin___clear_cache): Document new builtin.
2076         * doc/md.texi (clear_cache): Document new instruction pattern.
2077         * testsuite/gcc.dg/builtins-64.c: New test.
2078
2079 2007-07-11  Hans-Peter Nilsson  <hp@axis.com>
2080
2081         * config/cris/cris.md ("movsi"): Fix typo in last change.
2082
2083 2007-07-09  Geoffrey Keating  <geoffk@apple.com>
2084
2085         PR 32617
2086         * c-common.c (c_alignof_expr): Look at DECL_ALIGN of
2087         FUNCTION_DECLs.
2088         (handle_aligned_attribute): Allow use on FUNCTION_DECLs.
2089         * varasm.c (assemble_start_function): Honor DECL_ALIGN
2090         for FUNCTION_DECLs.  Don't use align_functions_log if
2091         DECL_USER_ALIGN.
2092         * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
2093         even for FUNCTION_DECLs.
2094         * c-decl.c (merge_decls): Propagate DECL_ALIGN even for
2095         FUNCTION_DECLs.
2096         * tree.h (DECL_ALIGN): Update for new location of 'align'.
2097         (DECL_FUNCTION_CODE): Update for new location and name of
2098         'function_code'.
2099         (DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
2100         (struct tree_decl_common): Move 'align' and 'off_align' out
2101         of union, ensure they're still on a 32-bit boundary.  Remove
2102         other fields in union 'u1'.
2103         (struct tree_function_decl): Add field 'function_code' replacing
2104         'u1.f' in tree_decl_common.
2105         * tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
2106         * doc/extend.texi (Function Attributes): Add 'aligned' attribute.
2107         (Variable Attributes): Cross-reference 'aligned' attribute
2108         to Function Attributes.
2109         * flags.h (force_align_functions_log): Delete.
2110         * toplev.c (force_align_functions_log): Delete.
2111
2112 2007-07-10  Uros Bizjak  <ubizjak@gmail.com>
2113
2114         PR target/32708
2115         * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
2116         (*vec_concatv2di_rex): New insn pattern.
2117
2118 2007-07-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2119
2120         PR target/32538
2121         * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
2122
2123 2007-07-10  Ian Lance Taylor  <iant@google.com>
2124
2125         Replace no_new_pseudos in backends.
2126         * rtl.h (can_create_pseudo_p): Define.
2127         * config/darwin.c (machopic_indirect_data_reference): Use
2128         can_create_pseudo_p () instead of no_new_pseudos.
2129         (machopic_indirect_data_reference): Likewise.
2130         (machopic_legitimize_pic_address): Likewise.
2131         * config/alpha/alpha.c (alpha_legitimize_address): Likewise.
2132         (alpha_emit_set_const_1): Likewise.
2133         (alpha_emit_set_const): Likewise.
2134         (alpha_emit_conditional_move): Likewise.
2135         (alpha_split_conditional_move): Likewise.
2136         * config/alpha/alpha.md (various splitters): Likewise.
2137         (movti): Likewise.
2138         * config/arm/arm.c (legitimize_pic_address): Likewise.
2139         (arm_load_pic_register): Likewise.
2140         * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise.
2141         (movdi, movsi, movhi, movqi, movsf, movdf): Likewise.
2142         * config/bfin/bfin.c (legitimize_pic_address): Likewise.
2143         * config/cris/cris.c (cris_expand_pic_call_address): Likewise.
2144         * config/cris/cris.md (movsi): Likewise.
2145         * config/frv/frv.md (symGOT2reg_hilo): Likewise.
2146         (symGOTOFF2reg_hilo): Likewise.
2147         (symGPREL2reg, symGPREL2reg_hilo): Likewise.
2148         * config/h8300/h8300.md (insv, extzv): Likewise.
2149         * config/i386/i386.c (ix86_expand_move): Likewise.
2150         (ix86_expand_vector_move): Likewise.
2151         (ix86_prepare_fp_compare_args): Likewise.
2152         (ix86_expand_carry_flag_compare): Likewise.
2153         * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise.
2154         (tls_dynamic_gnu2_combine_32): Likewise.
2155         (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise.
2156         * config/ia64/ia64.c (ia64_expand_move): Likewise.
2157         (ia64_expand_movxf_movrf): Likewise.
2158         * config/m32c/m32c.c (m32c_prepare_move): Likewise.
2159         (m32c_split_move): Likewise.
2160         (m32c_expand_insv): Likewise.
2161         * config/m68k/m68k.md (movsi): Likewise.
2162         * config/mips/mips.c (mips_force_temporary): Likewise.
2163         (mips_split_symbol): Likewise.
2164         (mips_move_integer): Likewise.
2165         (mips_legitimize_const_move): Likewise.
2166         * config/mn10300/mn10300.md (movsi): Likewise.
2167         * config/pa/pa.c (emit_move_sequence): Likewise.
2168         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
2169         (rs6000_got_register): Likewise.
2170         (create_TOC_reference): Likewise.
2171         (rs6000_machopic_legitimize_pic_address): Likewise.
2172         * config/rs6000/rs6000.md (add<mode>3): Likewise.
2173         (various splitters): Likewise.
2174         (iorsi3, xorsi3, iordi3, xordi3): Likewise.
2175         (movsi_got): Likewise.
2176         * config/s390/s390.c (emit_symbolic_move): Likewise.
2177         * config/s390/s390.md (movhi, movqi): Likewise.
2178         (load_multiple, store_multiple): Likewise.
2179         * config/score/score.c (score_force_temporary): Likewise.
2180         * config/sh/sh.c (prepare_move_operands): Likewise.
2181         (prepare_cbranch_operands): Likewise.
2182         (emit_fpu_switch): Likewise.
2183         (fpscr_set_from_mem): Likewise.
2184         * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise.
2185         (adddi3, subsi3): Likewise.
2186         (various splitters): Likewise.
2187         (divsi_inv_fp_combine): Likewise.
2188         (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise.
2189         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise.
2190         (sne): Likewise.
2191         * config/sh/predicates.md (xor_operand): Likewise.
2192         * config/sparc/sparc.c (legitimize_tls_address): Likewise.
2193         * config/sparc/sparc.md (movsi_pic_label_ref): Likewise.
2194         (movdi_pic_label_ref): Likewise.
2195         * config/spu/spu.c (spu_split_immediate): Likewise.
2196         * config/alpha/alpha.md (various splitters): Remove test
2197         !no_new_pseudos || reload_completed.
2198         * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set
2199         no_new_pseudos.
2200         * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
2201         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
2202         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
2203         * config/score/score.c (th_output_mi_thunk): Likewise.
2204         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2205         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
2206
2207 2007-07-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2208
2209         PR rtl-optimization/32664
2210         * mode-switching.c (create_pre_exit): Skip barrier insns.
2211
2212 2007-07-10  Zdenek Dvorak  <dvorakz@suse.cz>
2213
2214         * tree-scalar-evolution.c (scev_const_prop): Add arguments to
2215         force_gimple_operand_bsi.
2216         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr,
2217         rewrite_use_compare): Ditto.
2218         * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref):
2219         Ditto.
2220         * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto.
2221         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
2222         * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto.
2223         * tree-profile.c (prepare_instrumented_value,
2224         tree_gen_interval_profiler, tree_gen_pow2_profiler,
2225         tree_gen_one_value_profiler, tree_gen_ic_profiler,
2226         tree_gen_ic_func_profiler, tree_gen_average_profiler,
2227         tree_gen_ior_profiler): Ditto.
2228         * tree-ssa-reassoc.c (negate_value): Ditto.
2229         * matrix-reorg.c (transform_access_sites, transform_allocation_sites):
2230         Use force_gimple_operand_bsi.
2231         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
2232         * tree-if-conv.c (add_to_dst_predicate_list,
2233         find_phi_replacement_condition): Ditto.
2234         * gimplify.c (force_gimple_operand_bsi): Add before and m arguments.
2235         Call mark_symbols_for_renaming for new statements.
2236         * tree-flow.h (force_gimple_operand_bsi): Declaration changed.
2237
2238 2007-07-10  Zdenek Dvorak  <dvorakz@suse.cz>
2239
2240         * cfghooks.c (remove_edge): New function.
2241         (redirect_edge_and_branch, remove_branch, merge_blocks): Updated
2242         loop exit rescans.
2243         * cfghooks.h (remove_edge): Declare.
2244         * cfg.c (remove_edge): Renamed to remove_edge_raw.
2245         * basic-block.h (remove_edge): Declaration changed to remove_edge_raw.
2246
2247 2007-07-09  Wolfgang Gellerich  <gellerich@de.ibm.com>
2248
2249         * optabs.h: Added declaration for signbit_optab.  
2250         * optabs.c: (init_optabs): Added initialization for signbit_optab.
2251         * genoptinit.c (optabs): Added entry for signbit insns.  
2252         * builtins.c (expand_builtin_signbit): Added code to use a signbit
2253         insn, if available.  
2254         * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.  
2255         * config/s390/s390.md (signbit<mode>2): New expander.  
2256
2257 2007-07-09  Richard Guenther  <rguenther@suse.de>
2258
2259         PR middle-end/32698
2260         * fold-const.c (fold_plusminus_mult_expr): Move constant
2261         arguments second to allow decomposing.
2262
2263 2007-07-09  Alexandre Oliva  <aoliva@oliva.athome.lsd.ic.unicamp.br>
2264
2265         Revert:
2266         2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
2267         PR debug/23551
2268         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
2269         Disregard DECL_FROM_INLINE.
2270
2271 2007-07-09  Uros Bizjak  <ubizjak@gmail.com>
2272
2273         PR target/27855
2274         * doc/invoke.texi: Add ftree-reassoc flag.
2275         * common.opt (ftree-reassoc): New flag.
2276         * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
2277         (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.
2278
2279 2007-07-09  Uros Bizjak  <ubizjak@gmail.com>
2280
2281         PR tree-optimization/32681
2282         * tree-if-conv.c (find_phi_replacement_condition): Use the condition
2283         saved in second_edge->aux when first_bb is a loop header.
2284
2285 2007-07-09  Jan HUbicka  <jh@suse.cz>
2286
2287         * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
2288
2289 2007-07-09  Richard Guenther  <rguenther@suse.de>
2290
2291         * c-decl.c (start_function): Do not promote return type.
2292
2293 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
2294
2295         * function.c (do_warn_unused_parameter): Do not warn if
2296         TREE_NO_WARNING is set.
2297
2298 2007-07-08  Andreas Schwab  <schwab@suse.de>
2299
2300         * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
2301
2302 2007-07-08  Sandra Loosemore  <sandra@codesourcery.com>
2303
2304         Revert this patch:
2305         2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>
2306
2307         * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
2308         apply to assembly language, too.
2309         * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
2310
2311 2007-07-07  Daniel Berlin  <dberlin@dberlin.org>
2312
2313         Revert (note the sccvn portions are *not* reverted)
2314         2007-07-06  Daniel Berlin  <dberlin@dberlin.org>
2315
2316         Fix PR tree-optimization/23488
2317
2318         * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
2319         handles.
2320         * tree-flow-inline.h (get_value_handle): Ditto.
2321         * tree-ssa-pre.c (decl_vh_map): New.
2322         (decl_node_pool): New.
2323         (can_value_number_operation): Support DECL_P.
2324         (can_PRE_operation): Ditto.
2325         (create_expression_by_pieces): Ditto.
2326         (find_existing_value_expr): Modify to differnetiate between
2327         addressing and top level.
2328         (create_value_handle_for_expr): Handle DECL's.
2329         (poolify_tree): Ditto.
2330         (make_values_for_phi): Don't insert into PHI_GEN during FRE.
2331         (make_values_for_stmt): Handle DECL's properly.
2332         (init_pre): Reorg to not init useless things during FRE.
2333         (fini_pre): Ditto.
2334         * tree-flow.h: Include pointer-set.h.
2335         (decl_vh_map): Declare.
2336         * Makefile.in (TREE_FLOW_H): Add pointer-set.h
2337
2338 2007-07-07 Eric Weddington  <eweddington@cso.atmel.com>
2339
2340         * config/avr/constraints.md (define_memory_constraint "Q"): Fix
2341         the constraint description.
2342         * doc/md.texi: Update documentation of AVR constraints.
2343
2344 2007-07-07  Kazu Hirata  <kazu@codesourcery.com>
2345
2346         * auto-inc-dec.c, config/arm/arm.c,
2347         config/m32r/constraints.md, config/mips/mips.md,
2348         config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
2349         df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
2350         tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
2351         typos.  Follow spelling conventions.
2352         * doc/invoke.texi, doc/rtl.texi: Fix typos.
2353
2354         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
2355         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
2356
2357         * tree-ssa-operands.c (realloc_vop, realloc_vdef,
2358         realloc_vuse): Remove.
2359         * tree-ssa-operands.h: Remove the prototype for realloc_vdef
2360         and realloc_vuse.
2361
2362 2007-07-06  Daniel Berlin  <dberlin@dberlin.org>
2363
2364         Fix PR tree-optimization/23488
2365
2366         * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
2367         (try_to_simplify): Ditto.
2368         (visit_use): Ditto.
2369         * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
2370         handles.
2371         * tree-flow-inline.h (get_value_handle): Ditto.
2372         * tree-ssa-pre.c (decl_vh_map): New.
2373         (decl_node_pool): New.
2374         (can_value_number_operation): Support DECL_P.
2375         (can_PRE_operation): Ditto.
2376         (create_expression_by_pieces): Ditto.
2377         (find_existing_value_expr): Modify to differnetiate between
2378         addressing and top level.
2379         (create_value_handle_for_expr): Handle DECL's.
2380         (poolify_tree): Ditto.
2381         (make_values_for_phi): Don't insert into PHI_GEN during FRE.
2382         (make_values_for_stmt): Handle DECL's properly.
2383         (init_pre): Reorg to not init useless things during FRE.
2384         (fini_pre): Ditto.
2385         * tree-flow.h: Include pointer-set.h.
2386         (decl_vh_map): Declare.
2387         * Makefile.in (TREE_FLOW_H): Add pointer-set.h
2388                 
2389 2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>
2390
2391         * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
2392         apply to assembly language, too.
2393         * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
2394
2395 2007-07-06  Ian Lance Taylor  <iant@google.com>
2396             Zack Weinberg  <zackw@panix.com>
2397
2398         PR middle-end/32441
2399         * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
2400
2401 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
2402
2403         * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
2404         (prefetch): Likewise if "pref" would be used.
2405
2406 2007-07-06  Josh Conner  <jconner@apple.com>
2407
2408         PR middle-end/32602
2409         PR middle-end/32603
2410         * calls.c (store_one_arg): Handle arguments which are partially
2411         on the stack when detecting argument overlap.
2412
2413 2007-07-06  Bernd Schmidt  <bernd.schmidt@analog.com>
2414
2415         * reload1.c (choose_reload_regs): Set reload_spill_index for regs
2416         chosen during find_reloads.
2417
2418 2007-07-06  Richard Guenther  <rguenther@suse.de>
2419
2420         * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
2421         TYPE_ARG_TYPES for verification of argument types.  Use
2422         DECL_ARG_TYPE instead of the PARM_DECL type.  Take excess
2423         parameters as variable arguments.
2424
2425 2007-07-06  Andreas Krebbel  <krebbel1@de.ibm.com>
2426
2427         * libgcc2.h (word_type): Type definition removed.
2428         (cmp_return_type, shift_count_type): Type definitions added.
2429         (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
2430         replaced with shift_count_type.
2431         (__cmpdi2, __ucmpdi2): word_type of return type replaced with
2432         cmp_return_type.
2433         * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
2434         changed from word_type to Wtype.
2435         (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
2436         replaced with shift_count_type.
2437         (__cmpdi2, __ucmpdi2): word_type of return type replaced with
2438         cmp_return_type.
2439         * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return
2440         and libgcc_shift_count attribute added.
2441         * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
2442         TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
2443         (TARGET_INITIALIZER): New target hooks added.
2444         * targhooks.c (default_libgcc_cmp_return_mode,
2445         default_libgcc_shift_count_mode): Default implementations for the new
2446         target hooks added.
2447         * targhooks.h (default_libgcc_cmp_return_mode,
2448         default_libgcc_shift_count_mode): Function prototypes added.
2449         * target.h (struct gcc_target): Fields for the new target hooks added.
2450         * optabs.c (expand_binop): Use shift_count_mode when expanding shift
2451         as library call.
2452         (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
2453         library call.
2454
2455         * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
2456         TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
2457
2458         * config/s390/s390.c (s390_libgcc_cmp_return_mode,
2459         s390_libgcc_shift_count_mode): Functions added.
2460         (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE):
2461         Target hooks defined.
2462
2463 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
2464
2465         * config/mips/mips.c (compute_frame_size): Restore the original
2466         gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
2467         fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
2468         Document why the difference is needed.
2469
2470 2007-07-06  Richard Guenther  <rguenther@suse.de>
2471
2472         * c-common.c (boolean_increment): Use correctly typed
2473         constant.
2474
2475 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
2476
2477         * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
2478         the topmost argument register is not also included in the save mask.
2479         (mips16e_collect_argument_save_p): Take a pointer to the argument
2480         register, rather than a pointer to the number of arguments.
2481         (mips16e_collect_argument_saves): Only include argument saves
2482         that aren't in the register mask.
2483
2484 2007-07-06  Uros Bizjak  <ubizjak@gmail.com>
2485
2486         PR rtl-optimization/32450
2487         * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
2488         to ensure that instructions are not moved into the prologue when
2489         profiling is on.  Remove unused prologue_end variable.
2490         (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
2491         as a scheduling barrier.
2492
2493 2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
2494
2495         PR debug/23551
2496         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
2497         Disregard DECL_FROM_INLINE.
2498
2499 2007-07-05  Adam Nemet  <anemet@caviumnetworks.com>
2500
2501         * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
2502         IORing with a constant.
2503
2504 2007-07-05  Seongbae Park  <seongbae.park@gmail.com>
2505
2506         PR rtl-optimization/32475
2507         * df-scan.c (df_def_record_1): Add a use of the stack pointer
2508         for every definition of the stack pointer.
2509
2510 2007-07-05  Richard Earnshaw  <rearnsha@arm.com>
2511
2512         * arm.c (vfp3_const_double_index): Copy signed results of
2513         REAL_VALUE_TO_INT into unsigned vars.
2514
2515 2007-07-05  Richard Guenther  <rguenther@suse.de>
2516
2517         PR middle-end/32639
2518         * alias.c (get_alias_set): Tread METHOD_TYPE the same as
2519         FUNCTION_TYPE.
2520         * tree-ssa.c (useless_type_conversion_p): Check canonical
2521         types early.
2522
2523 2007-07-05 Anatoly Sokolov <aesok@post.ru>
2524
2525         * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2, 
2526         zero_extendhisi2): Change to define_insn_and_split. 
2527         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.
2528
2529 2007-07-05  Paolo Bonzini  <bonzini@gnu.org>
2530
2531         * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
2532         pass_match_asm_constraints): New.
2533         * passes.c (init_optimization_passes): Add new pass.
2534         * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
2535         * function.h (struct function): Add has_asm_statement bit.
2536         (current_function_has_asm_statement): New.
2537         * tree-pass.h (pass_match_asm_constraints): New.
2538
2539 2007-07-05  Richard Sandiford  <rsandifo@nildram.co.uk>
2540
2541         * config/mips/mips.c (mips_file_start): Avoid declaration
2542         after code.
2543
2544 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
2545
2546         * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
2547
2548 2007-07-05  Uros Bizjak  <ubizjak@gmail.com>
2549
2550         * rtl.def (NOTE): Change print format string to print
2551         operand 5 as a note insn name.
2552
2553 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
2554             David Ung  <davidu@mips.com>
2555
2556         * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
2557         * doc/invoke.texi: (MIPS Options): Document them.
2558
2559 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
2560             David Ung  <davidu@mips.com>
2561
2562         Add support for SmartMIPS ASE.
2563
2564         * optabs.c (expand_binop_directly): New, broken out from...
2565         (expand_binop): Here.  Make it try rotating in the other
2566         direction even when the second operand isn't constant.
2567         * config/mips/mips.md (*lwxs): New.
2568         * config/mips/mips.opt (msmartmips): New.
2569         * config/mips/mips.c (mips_lwxs_address_p): New.
2570         (mips_rtx_costs): Make it recognize scaled indexed addressing.
2571         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
2572         __mips_smartmips when compiling for TARGET_SMARTMIPS.
2573         (ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
2574         (ISA_HAS_LWXS): New.
2575         (ASM_SPEC): Add -msmartmips/-mno-smartmips.
2576         * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
2577         * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
2578         * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
2579         * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
2580         * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
2581         * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.
2582
2583 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
2584
2585         * tree-vectorizer.c (new_loop_vec_info): Initialize
2586         LOOP_VINFO_COST_MODEL_MIN_ITERS.
2587         * tree-vectorizer.h (_loop_vec_info): Added new filed
2588         min_profitable_iters.
2589         (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
2590         (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
2591         * tree-vect-analyze.c (vect_analyze_operations): Set
2592         LOOP_VINFO_COST_MODEL_MIN_ITERS.
2593         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
2594         VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
2595         Fix calculation of peel_iters_prologue. Move consideration of epilogue
2596         and prologue cost to after they are computed.
2597         (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
2598         TARG_VEC_STMT_COST.
2599         (vect_model_simple_cost): Takes additional argument dt. Consider cost
2600         of creating vectors from scalars according to dt.
2601         (vect_model_store_cost): Likewise.
2602         (vectorizable_call): Use dt array instead of scalar dt. Call
2603         vect_model_simple_cost with additional argument dt.
2604         (vectorizable_assignment): Likewise.
2605         (vectorizable_operation): Likewise.
2606         (vectorizable_type_demotion): Likewise.
2607         (vectorizable_type_promotion): Likewise.
2608         (vectorizable_store): Use dt array instead of scalar dt. Call
2609         vect_model_store_cost with additional argument dt.
2610         (vect_do_peeling_for_loop_bound): Don't call
2611         vect_estimate_min_profitable_iters. Instead, lookup
2612         LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
2613         "may not be profitable".
2614
2615 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
2616
2617         PR testsuite/32014
2618         * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
2619         (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
2620         (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
2621         (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns. 
2622
2623 2007-07-05  Zdenek Dvorak  <dvorakz@suse.cz>
2624
2625         * config/i386/i386.c (ix86_address_cost): Do not consider more complex
2626         addressing modes cheaper.
2627
2628 2007-07-05  Alexandre Oliva  <aoliva@redhat.com>
2629
2630         * dwarf2out.c (dw_ranges_by_label_ref): New typedef.
2631         (dw_ranges_struct): Rename block_num to num.  Adjust.
2632         (dw_ranges_by_label_struct): New.
2633         (ranges_by_label, ranges_by_label_allocated,
2634         ranges_by_label_in_use): New variables.
2635         (add_ranges_num): Factored most of the code out of...
2636         (add_ranges): ... this one.  Rewrite in terms of the former.
2637         (add_ranges_by_labels): New.
2638         (output_ranges): Output by-label ranges.
2639         (dwarf2out_finish): Output range for multiple-section
2640         compile_unit.  Output standard DW_AT_low_pc in addition to
2641         unexpected DW_AT_entry_pc.
2642
2643 2007-07-04  Daniel Berlin  <dberlin@dberlin.org>
2644
2645         PR tree-optimization/32604
2646         PR tree-optimization/32606
2647
2648         * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
2649         (compute_antic_safe): Removed.
2650         (ANTIC_SAFE_LOADS): Ditto.
2651         (compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
2652         (execute_pre): Don't call compute_antic_safe.
2653         (vuse_equiv): New function.
2654         (make_values_for_stmt): Use it
2655         * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
2656         not always true.
2657
2658 2007-07-04 Anatoly Sokolov <aesok@post.ru>
2659
2660         PR target/31331
2661         * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
2662         rather than a decl. 
2663         (avr_attribute_table): Make "naked" attribute apply to function types
2664         rather than to decls.
2665         (avr_handle_fntype_attribute): New function.
2666
2667 2007-07-04  Joseph Myers  <joseph@codesourcery.com>
2668
2669         * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
2670         after \.
2671
2672 2007-07-04  David Ung  <davidu@mips.com>
2673             Joseph Myers  <joseph@codesourcery.com>
2674
2675         * config/mips/mips.md (type): Add logical, signext and move.
2676         (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
2677         *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16,
2678         *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend
2679         combinations", *zero_extend<SHORT:mode><GPR:mode>2,
2680         *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e,
2681         *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit,
2682         *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc,
2683         *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16,
2684         *movsf_hardfloat, *movsf_softfloat, *movsf_mips16,
2685         *movdf_hardfloat_64bit, *movdf_hardfloat_32bit,
2686         movv2sf_hardfloat_64bit): Use the new types.
2687         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16,
2688         *movdf_softfloat, *movdf_mips16): Use "multi".
2689         (extendqihi2): Replace with a define_expand.
2690         (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New.
2691         Based on extend<SHORT:mode><GPR:mode>2 patterns.
2692         * config/mips/74k.md (r74k_int_logical): New reservation and
2693         bypasses.
2694         (r74k_int_arith): Remove "slt".
2695         * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md,
2696         config/mips/5400.md, config/mips/5500.md, config/mips/5k.md,
2697         config/mips/7000.md, config/mips/9000.md, config/mips/generic.md,
2698         config/mips/sb1.md, config/mips/sr71k.md: Add new types to
2699         reservations for "arith".
2700
2701 2007-07-04  Richard Guenther  <rguenther@suse.de>
2702
2703         * tree-ssa.c (useless_type_conversion_p): Add handling for
2704         scalar float and vector types.  Only call the types_compatible_p
2705         langhook for aggregate types as last resort.  Follow the
2706         rules.
2707
2708 2007-07-04  Richard Guenther  <rguenther@suse.de>
2709
2710         * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
2711         the same as NOP_EXPR.
2712
2713 2007-07-04  Nick Clifton  <nickc@redhat.com>
2714
2715         * target.h (struct gcc_target): Add target_help field.
2716         * target-def.h (TARGET_HELP): New.
2717         (TARGET_INITIALIZER): Use TARGET_HELP.
2718         * opts.c (command_handle_option): Invoke target_help function, if
2719         defined, when the user has specified --target-help on the command
2720         line.
2721         * doc/invoke.texi: Mention that --target-help might print
2722         additional information.
2723         * doc/tm.texi: Document TARGET_HELP hook.
2724
2725         * arm.c (TARGET_HELP): Override default definition.
2726         (arm_target_help): New - display a wrapped list of cores and
2727         architectures supported.
2728
2729 2007-07-04  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2730
2731         * config/gcc/v850/v850.c (expand_prologue): Make sure
2732         GEN_INT() argument is sign extended rather than zero extended.
2733         (expand_epilogue): Likewise.
2734         (output_move_double): Delete.
2735         * config/gcc/v850/v850-protos.h (output_move_double): Delete.
2736         * config/gcc/v850/v850.md (movdi): Delete.
2737         (*movdi_internal): Delete.
2738         (movdf): Delete.
2739         (*movdf_internal): Delete.
2740
2741 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
2742
2743         * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
2744         unless compiling RTP PIC.
2745
2746 2007-07-04  Richard Guenther  <rguenther@suse.de>
2747
2748         PR tree-optimization/32482
2749         * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
2750         original ssa name if we didn't find a shift expression.
2751         Fix shift constant for bit zero test.
2752
2753 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
2754
2755         * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.
2756
2757 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
2758
2759         * config.gcc (arm-wrs-vxworks): Don't include svr4.h.
2760         * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define.
2761         * config/arm/vxworks.h (ASM_SPEC): Delete.
2762         (SUBTARGET_EXTRA_ASM_SPEC): Define.
2763
2764 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
2765
2766         * tree-data-ref.h (data_dependence_relation): New flag reversed_p.
2767         (DDR_REVERSED_P): New.
2768         * tree-data-ref.c (initialize_data_dependence_relation,
2769         build_classic_dist_vector): Set DDR_REVERSED_P.
2770
2771 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
2772
2773         PR middle-end/32457
2774         * tree-data-ref.c (analyze_siv_subscript_cst_affine,
2775         compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
2776         init_omega_for_ddr_1): Use non conservative number of iterations
2777         estimations.
2778         (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
2779         (analyze_siv_subscript): Remove FIXME and reinitialization of 
2780         last_conflicts to chrec_dont_know.
2781         * testsuite/gfortran.dg/vect/pr32457.f90: New.
2782
2783 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
2784
2785         * tree.c (maybe_canonicalize_argtypes): Improve description.
2786
2787 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
2788
2789         * tree.c (maybe_canonicalize_argtypes): New.
2790         (build_function_type): Set canonical type.
2791         (build_method_type_directly): Ditto.
2792         (reconstruct_complex_type): Rebuild the METHOD_TYPE node
2793         properly.
2794
2795 2007-07-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2796
2797         * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
2798         like PLUS_EXPR.
2799         (rewrite_use_nonlinear_expr): Likewise.
2800
2801 2007-07-03  Seongbae Park  <seongbae.park@gmail.com>
2802
2803         * rtl.def (UNSPEC, USE, CLOBBER): More comments.
2804
2805 2007-07-04  Ben Elliston  <bje@au.ibm.com>
2806
2807         * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
2808         of this file.
2809
2810         * c-objc-common.c (c_types_compatible_p): Fix indentation.
2811
2812         * doc/tm.texi (Run-time Target): Capitalise "CPU".
2813         (Exception Handling): Likewise.
2814
2815 2007-07-03  Jan Hubicka  <jh@suse.cz>
2816
2817         * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
2818
2819 2007-07-03  Eric Christopher  <echristo@apple.com>
2820
2821         * doc/cppopts.texi: Add conflicting option note to -dM.
2822         * doc/invoke.texi: Add note about possible conflicts with
2823         -E for -dCHARS and note that -dM will not produce
2824         any results if there is no machine dependent reorg.
2825         
2826 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
2827
2828         * tree.h (DECL_ALIGN): Back out previous change.
2829
2830 2007-07-03  Joseph Myers  <joseph@codesourcery.com>
2831
2832         * configure.ac: Test for .dtprelword support on MIPS.
2833         * configure, config.in: Regenerate.
2834         * config/mips/mips.c (mips_output_dwarf_dtprel): New.
2835         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
2836
2837 2007-07-03  Julian Brown  <julian@codesourcery.com>
2838
2839         * config.gcc (with_fpu): Allow --with-fpu=vfp3.
2840         * config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
2841         * config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
2842         * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
2843         capability.
2844         (all_fpus): Add FPUTYPE_VFP3.
2845         (fp_model_for_fpu): Add VFPv3 field.
2846         (arm_rtx_costs_1): Give cost to VFPv3 constants.
2847         (vfp3_const_double_index): New function. Return integer index of
2848         VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
2849         isn't suitable.
2850         (vfp3_const_double_rtx): New function. True if VFPv3 is enabled
2851         and argument represents a valid RTX for a VFPv3 constant.
2852         (vfp_output_fldmd): Split fldmd with > 16 registers in the list into
2853         two instructions.
2854         (vfp_emit_fstmd): Similar, for fstmd.
2855         (arm_print_operand): Implement new code 'G' for VFPv3 floating-point
2856         constants, represented as integer indices.
2857         (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
2858         VFP_REGNO_OK_FOR_DOUBLE macros.
2859         (arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
2860         (arm_file_start): Set float-abi attribute for VFPv3, and output
2861         correct ".fpu" assembler directive.
2862         (arm_dbx_register_numbering): Add FIXME.
2863         * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
2864         (fputype): Add FPUTYPE_VFP3.
2865         (FIXED_REGISTERS): Add 32 registers for D16-D31.
2866         (CALL_USED_REGISTERS): Likewise.
2867         (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
2868         of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
2869         (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
2870         (D7_VFP_REGNUM): New.
2871         (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
2872         (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
2873         (VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
2874         (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
2875         (REG_ALLOC_ORDER): Adjust for VFPv3.
2876         (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
2877         (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
2878         VFP_LO_REGS, VFP_HI_REGS.
2879         (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
2880         (IS_VFP_CLASS): Define macro.
2881         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
2882         IS_VFP_CLASS.
2883         (REGISTER_MOVE_COST): Likewise.
2884         * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
2885         * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
2886         (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
2887         (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
2888         (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
2889         (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
2890         (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
2891         (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
2892         (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
2893         (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
2894         (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
2895         where appropriate for single-word registers.
2896         (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
2897         As above. Fix type attributes.
2898         * config/arm/constraints.md (register_contraint "t"): Define.
2899         (register_constraint "w"): Change to D0-D15, or D0-D31 for
2900         VFPv3/NEON.
2901         (register_constraint "x"): Define.
2902         (constraint "Dv"): Define.
2903
2904 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
2905
2906         * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
2907
2908 2007-07-03  Tom Tromey  <tromey@redhat.com>
2909
2910         * c-parser.c (objc_pq_context): Removed.
2911         (objc_need_raw_identifier): Likewise.
2912         (c_parser) <objc_pq_context>: New field.
2913         <objc_need_raw_identifier>: Likewise.
2914         (OBJC_NEED_RAW_IDENTIFIER): Removed.
2915         (c_lex_one_token): Update.
2916         (c_parser_objc_protocol_definition): Update.
2917         (c_parser_objc_method_definition): Update.
2918         (c_parser_objc_methodproto): Update.
2919         (c_parser_declspecs): Update.
2920
2921 2007-07-03  David Ung  <davidu@mips.com>
2922
2923         * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
2924
2925 2007-07-03  David Ung  <davidu@mips.com>
2926             Richard Sandiford  <richard@codesourcery.com>
2927
2928         * doc/invoke.texi: Document -march=74kf3_2.
2929         * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
2930         (TUNE_74K): Check for it.
2931         * config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
2932         (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
2933         * config/mips/mips.md (cpu): Add 74kf3_2.
2934         * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
2935         (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
2936         (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
2937         (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
2938         74kf3_2 to the CPU list.
2939         (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
2940         (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
2941         (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
2942         (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
2943         (r74kf3_2_fxfer_from_c1): New insn reservations.
2944
2945 2007-07-03  Richard Sandiford  <richard@codesourcery.com>
2946             David Ung  <davidu@mips.com>
2947
2948         * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
2949         -march=24kx with -march=24kf1_1.  Likewise 24ke[fx], 34k[fx]
2950         and 74k[fx].  Document aliases for the new options.
2951         * config/mips/mips.h (PROCESSOR_24KF): Rename to...
2952         (PROCESSOR_24KF2_1): ...this.
2953         (PROCESSOR_24KX): Rename to...
2954         (PROCESSOR_24KF1_1): ...this.
2955         (PROCESSOR_74KF): Rename to...
2956         (PROCESSOR_74KF2_1): ...this.
2957         (PROCESSOR_74KX): Rename to...
2958         (PROCESSOR_74KF1_1): ...this.
2959         (TUNE_74K): Update PROCESSOR_* names.
2960         * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
2961         for 24kf.  Add 24kf1_1 and 24kfx as synonyms for 24kx.  Likewise
2962         the 24ke*, 34k* and 74k* processors.  Update PROCESSOR_* names.
2963         (mips_rtx_cost_data): Update processor names in comments.
2964         (mips_issue_rate): Update PROCESSOR_* names.
2965         * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
2966         24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
2967         * config/mips/24k.md: Rename FPU-related r24k_* insn reservations
2968         to r24kf2_1_*.  Rename r24kx_* insn reservations to r24kf1_1_*.
2969         Update cpu attribute names.
2970         (r24k_fpu_iss): Rename this reservation to...
2971         (r24kf2_1_fpu_iss): ...this and update all uses.
2972         (r24kx_fpu_iss): Rename this reservation to...
2973         (r24kf1_1_fpu_iss): ...this and update all uses.
2974         * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
2975         to r74kf2_1_*.  Rename r74kx_* insn reservations to r74kf1_1_*.
2976         Update cpu attribute names.
2977
2978 2007-07-01  Kaz Kojima  <kkojima@gcc.gnu.org>
2979
2980         * config/m32r/constraints.md: New file.
2981         * config/m32r/m32r.c: Include tm-constrs.h.
2982         (small_data_operand): Use satisfies_constraint_* instead of macro.
2983         (addr24_operand, gen_compare): Likewise.
2984         * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
2985         (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
2986         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
2987         EXTRA_CONSTRAINT): Likewise.
2988         * config/m32r/m32r.md: Include constraints.md.
2989         (*movsi_insn): Use satisfies_constraint_* instead of macro.
2990         (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
2991         * config/m32r/predicates.md (conditional_move_operand): Likewise.
2992         (two_insn_const_operand, int8_operand, uint16_operand,
2993         reg_or_int16_operand, reg_or_uint16_operand,
2994         reg_or_cmp_int16_operand, cmp_int16_operand,
2995         seth_add3_operand): Likewise.
2996
2997 2007-07-03  Eric Christopher  <echristo@gmail.com>
2998
2999         * libgcc2.h: Conditionally declare __bswapsi2 and
3000         __bswapdi2.
3001         
3002 2007-07-03  H.J. Lu  <hongjiu.lu@intel.com>
3003
3004         * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
3005         defined.
3006
3007 2007-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3008
3009         PR target/28307
3010         * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
3011         (__gthrw_pragma): Provide default definition.
3012         (__gthrw2): Use it.
3013         * gthr-posix.c (__gthrw_pragma): Define.
3014
3015 2007-07-03  Daniel Berlin  <dberlin@dberlin.org>
3016
3017         * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
3018         before declaring inequality.
3019
3020 2007-07-03  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3021
3022         * combine.c (recog_for_combine): Log the success or failure of
3023           matching new insn patterns against the machine description in
3024           detailed dumps.
3025
3026 2007-07-03  Revital Eres  <eres@il.ibm.com>
3027
3028         * ddg.c (print_sccs): New function.
3029         (check_sccs): New function.
3030         (create_ddg_all_sccs): Use it.
3031         * ddg.h (print_sccs): Declare.
3032         * modulo-sched.c (sms_order_nodes): Call print_sccs.
3033
3034 2007-07-03  Uros Bizjak  <ubizjak@gmail.com>
3035
3036         * targhooks.h (default_mode_for_suffix): New function declaration.
3037         * targhooks.c (default_mode_for_suffix): New default target hook.
3038         * target.h (struct c): New structure in the targetm struct.
3039         (mode_for_suffix): New target hook as part of struct c.
3040         target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
3041         default_mode_for_suffix.
3042         (TARGET_C): New define.
3043         * c-lex.c: Include "target.h".
3044         (interpret_float): Use targetm.c.mode_for_suffix to determine
3045         the mode for a given non-standard suffix.
3046         Makefile.in (c-lex.o): Depend on $(TARGET_H).
3047
3048         * config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
3049         (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
3050
3051         * doc/extend.texi (Floating Types): New node.  Document __float80 and
3052         __float128 types.  Document 'w', 'W', 'q' and 'Q' suffixes.
3053
3054 2007-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3055
3056         PR target/32506
3057         * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
3058         predicate instead of target_operand.
3059         (divsi3_i1_media, divsi3_media_2): Likewise.
3060
3061 2007-07-02  Eric Botcazou  <ebotcazou@adacore.com>
3062
3063         * tree.h (alias_sets_might_conflict_p): Rename into
3064         alias_sets_must_conflict_p.
3065         * alias.c (alias_sets_might_conflict_p): Likewise.
3066         (alias_sets_conflict_p): Use it.
3067         (objects_must_conflict_p): Likewise.
3068         * c-common.c (strict_aliasing_warning): Adjust.
3069
3070 2007-07-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3071
3072         * rtlhooks.c (gen_lowpart_if_possible): Check for
3073         invalid subreg before calling gen_lowpart_SUBREG.
3074
3075 2007-07-02  Geoffrey Keating  <geoffk@apple.com>
3076
3077         * config/darwin9.h: Add copyright notice.
3078         (LINK_COMMAND_SPEC): Add comment.
3079         (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
3080         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
3081         DARWIN_LIBSYSTEM_HAS_UNWIND.
3082
3083 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
3084
3085         PR libgomp/32468
3086         * omp-low.c (check_combined_parallel): New function.
3087         (lower_omp_parallel): Call it via walk_stmts, set
3088         OMP_PARALLEL_COMBINED if appropriate.
3089         (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
3090         isn't the only statement in WS_ENTRY_BB or OMP_RETURN
3091         the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
3092         don't consider it as combined parallel.
3093
3094 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
3095
3096         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
3097         (gcc_tooldir): Likewise.
3098         * configure: Regenerate.
3099         * Makefile.in (libsubdir_to_prefix): New variable, based on the
3100         old configure.ac gcc_tooldir setting.
3101         (prefix_to_exec_prefix): New variable.
3102         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
3103         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
3104
3105 2007-07-02  Daniel Berlin  <dberlin@dberlin.org>
3106
3107         Fix PR tree-optimization/32583
3108         Fix PR tree-optimization/32584
3109         * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
3110         (phi_translate_set): Use phi_translate directly now.
3111         (make_values_for_stmt): Don't value number RHS if we already know
3112         it is constant.
3113
3114 2007-07-02  Steve Ellcey  <sje@cup.hp.com>
3115             Jim Wilson <wilson@specifix.com>
3116
3117         PR target/31684
3118         * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
3119         copy_insn.
3120
3121 2007-07-02  Sandra Loosemore  <sandra@codesourcery.com>
3122             Richard Sandiford  <richard@codesourcery.com>
3123             Nigel Stephens  <nigel@mips.com>
3124
3125         * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
3126         (mips16e_output_save_restore): Declare.
3127         (mips16e_save_restore_pattern_p): Likewise.
3128         * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
3129         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
3130         for GENERATE_MIPS16E_SAVE_RESTORE.  Return 0x400 for TARGET_MIPS16
3131         && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
3132         (BITSET_P): New global macro, extracted from...
3133         (mips_for_each_saved_reg): ...here.
3134         (mips16e_save_restore_info): New struct.
3135         (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
3136         (mips16e_save_restore_regs): New variable.
3137         (mips_split_plus, mips16e_find_first_register): New functions.
3138         (mips16e_mask_registers): New function.
3139         (compute_frame_size): Expand the commentary before the function.
3140         Enforce the MIPS16e save and restore register range restrictions.
3141         Pad the general register save area at the low end.
3142         (mips16e_save_restore_reg, mips16e_build_save_restore)
3143         (mips16e_save_restore_pattern_p, mips16e_add_register_range)
3144         (mips16e_output_save_restore, mips16e_collect_propagate_value)
3145         (mips16e_collect_argument_save, mips16e_collect_argument_saves):
3146         New functions.
3147         (mips_expand_prologue, mips_expand_epilogue): Handle
3148         GENERATE_MIPS16E_SAVE_RESTORE.
3149         * config/mips/mips.md (*mips16e_save_restore): New pattern.
3150
3151 2007-07-02  Uros Bizjak  <ubizjak@gmail.com>
3152
3153         PR tree-optimization/31966
3154         PR tree-optimization/32533
3155         * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
3156         "basic_block" description as its third argument.  Update function
3157         calls to get destination bb from "edge" argument.  Save "cond" into
3158         aux field of the edge.  Update prototype for changed arguments.
3159         (if_convertible_loop_p): Clear aux field of incoming edges if bb
3160         contains phi node.
3161         (find_phi_replacement_condition): Operate on incoming edges, not
3162         on predecessor blocks.  If there is a condition saved in the
3163         incoming edge aux field, AND it with incoming bb predicate.
3164         Return source bb of the first edge.
3165         (clean_predicate_lists): Clean aux field of outgoing node edges.
3166         (tree_if_conversion): Do not initialize cond variable. Move
3167         variable declaration into the loop.
3168         (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
3169         initializations of new_stmt, arg0 and arg1 variables.
3170
3171 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
3172
3173         * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
3174         SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
3175
3176 2007-07-02  Richard Guenther  <rguenther@suse.de>
3177
3178         * tree-ssa.c (useless_type_conversion_p): Document
3179         future intent as defining the middle-end type system.
3180         Re-structure to call langhook last, group by type class,
3181         mark questionable parts.
3182
3183 2007-07-02  Richard Guenther  <rguenther@suse.de>
3184
3185         * tree-flow.h (types_compatible_p): Declare.
3186         * tree-ssa.c (types_compatible_p): New function.
3187         * ipa-type-escape.c (discover_unique_type): Use
3188         types_compatible_p instead of lang_hooks.types_compatible_p.
3189         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
3190         * tree-vn.c (expressions_equal_p): Likewise.
3191         * tree.c (fields_compatible_p): Likewise.
3192         * tree-ssa-dom.c (avail_expr_eq): Likewise.
3193         (cprop_operand): Use useless_type_conversion_p instead of
3194         lang_hooks.types_compatible_p.
3195         * tree-inline.c (setup_one_parameter): Likewise.
3196         (declare_return_variable): Likewise.
3197         * tree-nrv.c (tree_nrv): Likewise.
3198         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
3199         (maybe_fold_offset_to_component_ref): Likewise.
3200         (maybe_fold_offset_to_reference): Likewise.
3201         * tree-ssa-copy.c (may_propagate_copy): Likewise.
3202         (merge_alias_info): Likewise.
3203         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3204         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
3205         * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
3206         * tree-tailcall.c (find_tail_calls): Likewise.
3207         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
3208         * gimplify.c (canonicalize_addr_expr): Likewise.
3209         (fold_indirect_ref_rhs): Likewise.
3210         (gimplify_addr_expr): Likewise.  Swap parameters to cpt_same_type.
3211         (cpt_same_type): Likewise.
3212         (check_pointer_types_r): Swap parameters to cpt_same_type
3213         where appropriate.
3214         * fold-const.c (fold_convert): Revert fix for PR15988.
3215         * tree-inline.c (setup_one_parameter): Instead fix it here by
3216         using fold_build1 instead of fold_convert and checking for
3217         error_mark_node.  Convert only if the conversion is necessary.
3218
3219 2007-07-02  Joseph Myers  <joseph@codesourcery.com>
3220
3221         * configure.ac: Check for .gnu_attribute on Power.
3222         * configure: Regenerate.
3223         * config/rs6000/rs6000.c (rs6000_file_start): If supported, output
3224         attribute for floating-point ABI.
3225
3226 2007-07-02  Ira Rosen  <irar@il.ibm.com>
3227
3228         PR tree-optimization/32230
3229         PR tree-optimization/32477
3230         * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base 
3231         address is a constant.
3232
3233 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
3234
3235         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*)
3236         (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*)
3237         (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level
3238         stanzas.  Use the first part of the triplet to set MIPS_ISA_DEFAULT.
3239         Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the
3240         64-bit targets.  Add support for *-elfoabi*.
3241         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use
3242         different settings if $(tm_defines) does not select the EABI.
3243         (MULTILIB_EXCLUSIONS): Define in those circumstances.
3244         * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro.
3245         (MIPS_ARCH_OPTION_SPEC): Likewise.
3246         (MIPS_ISA_LEVEL_SPEC): Likewise.
3247         (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC.
3248         * config/mips/elfoabi.h: New file.
3249
3250 2007-07-02  Richard Guenther  <rguenther@suse.de>
3251
3252         * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...
3253         (useless_type_conversion_p): ... this.
3254         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ...
3255         (useless_type_conversion_p): ... this.
3256         * builtins.c (fold_builtin_memory_op): Rename
3257         tree_ssa_useless_type_conversion_1 to useless_type_conversion_p.
3258         * tree-cfg.c (verify_expr): Likewise.
3259         * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise.
3260         * tree-ssa-ccp.c (ccp_fold): Likewise.
3261         * tree-ssa-copy.c (may_propagate_copy): Likewise.
3262         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
3263         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3264         * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise.
3265         * tree-ssa-pre.c (eliminate): Likewise.
3266         * tree-ssa.c (delete_tree_ssa): Likewise.
3267         (tree_ssa_useless_type_conversion): Likewise.
3268         * tree.c (build2_stat): Likewise.
3269
3270 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
3271
3272         Fix PR tree-optimization/32571
3273         * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid
3274         simplifying them.
3275
3276 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
3277
3278         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants
3279         and other expected operations explicitly, change default to
3280         gcc_unreachable. 
3281
3282 2007-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
3283
3284         * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a
3285         PARALLEL.
3286         * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight)
3287         (tls_load_dot_plus_eight): Move the label number into the unspec.
3288         * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise.
3289
3290 2007-07-01  Andreas Schwab  <schwab@suse.de>
3291
3292         * dwarf2out.c (initial_return_save): Define only if used.
3293
3294 2007-07-01  Kenneth Zadeck <zadeck@naturalbridge.com>
3295
3296         Unreverting Richard's Revert of:
3297
3298         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
3299
3300         * dce.c (deletable_insn_p_1): New function, split out from...
3301         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
3302         specially, not those inside PARALLELs.  Remove BODY argument
3303         and adjust recursive call accordingly.
3304         (prescan_insns_for_dce): Update call to delete_insn_p.
3305
3306 2007-07-01  Vladimir Yanovsky  <yanov@il.ibm.com>
3307             Revital Eres  <eres@il.ibm.com>
3308
3309         * ddg.c (create_ddg_all_sccs): Fix missed
3310         initialization of scc_nodes.
3311
3312 2007-07-01  Uros Bizjak  <ubizjak@gmail.com>
3313
3314         PR middle-end/32559
3315         * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or
3316         X + ~X to 1 only for INTEGRAL_TYPE_P type.
3317
3318 2007-06-30  Joseph Myers  <joseph@codesourcery.com>
3319
3320         * configure.ac: Check for .gnu_attribute on MIPS.
3321         * configure, config.in: Regenerate.
3322         * config/mips/mips.c (mips_file_start): If supported, output
3323         attribute for floating-point ABI.
3324
3325 2007-06-30  Uros Bizjak  <ubizjak@gmail.com>
3326
3327         PR target/32433
3328         * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE.
3329         (ffs_cmove): New expander to expand using ctz pattern.
3330         (*ffs_cmove): Remove pattern.
3331         (*ffs_no_cmove): Enable only for !TARGET_CMOVE.
3332         (ffsdi2): Expand using ctz pattern.
3333         (*ffs_rex64): Remove pattern.
3334
3335 2007-06-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3336
3337         PR rtl-optimization/32296
3338         * pa.md (return): Delete pattern.
3339         (return_internal): Remove "(const_int 1)" from pattern.
3340         (epilogue): Use return_internal pattern for trivial returns.
3341         * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration.
3342         * pa.c (hppa_can_use_return_insn_p): Delete function.  Include "df.h".
3343
3344 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
3345
3346         * tree-ssa-pre.c (is_exception_related): New function
3347         (can_value_number_operation): Use it.
3348
3349 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
3350         
3351         Fix PR tree-optimization/32540
3352         Fix PR tree-optimization/31651
3353
3354         * tree-ssa-sccvn.c: New file.
3355
3356         * tree-ssa-sccvn.h: Ditto.
3357         
3358         * tree-vn.c: Include tree-ssa-sccvn.h
3359         (val_expr_paid_d): Removed.
3360         (value_table): Ditto.
3361         (vn_compute): Ditto.
3362         (val_expr_pair_hash): Ditto.
3363         (val_expr_pair_expr_eq): Ditto.
3364         (copy_vuses_from_stmt): Ditto.
3365         (vn_delete): Ditto.
3366         (vn_init): Ditto.
3367         (shared_vuses_from_stmt): Ditto.
3368         (print_creation_to_file): Moved up.
3369         (sort_vuses): Ditto.
3370         (sort_vuses_heap): Ditto.
3371         (set_value_handle): Make non-static.
3372         (make_value_handle): Ditto.
3373         (vn_add): Rewritten to use sccvn lookups.
3374         (vn_add_with_vuses): Ditto.
3375         (vn_lookup): Ditto (and second argument removed).
3376         (vn_lookup_with_vuses): Ditto.
3377         (vn_lookup_or_add): Ditto (and second argument removed);
3378         (vn_lookup_or_add_with_vuses): Ditto.
3379         (vn_lookup_with_stmt): New.
3380         (vn_lookup_or_add_with_stmt): Ditto.
3381         (create_value_handle_for_expr): Ditto.
3382
3383         * tree-ssa-pre.c: Include tree-ssa-sccvn.h.
3384         (seen_during_translate): New function.
3385         (phi_trans_lookup): Use iterative_hash_expr, not vn_compute.
3386         (phi_trans_add): Ditto.
3387         (constant_expr_p): FIELD_DECL is always constant.
3388         (phi_translate_1): Renamed from phi_translate, add seen bitmap.
3389         Use constant_expr_p.
3390         Avoid infinite recursion on mutually valued expressions.
3391         Change callers of vn_lookup_or_add.
3392         (phi_translate): New function.
3393         (compute_antic_safe): Allow phi nodes.
3394         (create_component_ref_by_pieces): Update for FIELD_DECL change.
3395         (find_or_generate_expression): Rewrite slightly.
3396         (create_expression_by_pieces): Updated for vn_lookup_or_add
3397         change.
3398         Update VN_INFO for new names.
3399         (insert_into_preds_of_block): Update for new names.
3400         (add_to_exp_gen): New function.
3401         (add_to_sets): Use vn_lookup_or_add_with_stmt.
3402         (find_existing_value_expr): Rewrite to changed vn_lookup.
3403         (create_value_expr_from): Ditto, and use add_to_exp_gen.
3404         (try_look_through_load): Removed.
3405         (try_combine_conversion): Ditto.
3406         (get_sccvn_value): New function.
3407         (make_values_for_phi): Ditto.
3408         (make_values_for_stmt): Ditto.
3409         (compute_avail): Rewritten for vn_lookup_or_add changes and to use
3410         SCCVN.
3411         (init_pre): Update for SCCVN changes.
3412         (fini_pre): Ditto.
3413         (execute_pre): Ditto.
3414
3415         * tree-flow.h (make_value_handle): Declare.
3416         (set_value_handle): Ditto.
3417         (sort_vuses_heap): Ditto.
3418         (vn_lookup_or_add_with_stmt): Ditto.
3419         (vn_lookup_with_stmt): Ditto.
3420         (vn_compute): Remove.
3421         (vn_init): Ditto.
3422         (vn_delete): Ditto.
3423         (vn_lookup): Update arguments.
3424
3425         * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h
3426         (tree-vn.o): Ditto.
3427         (tree-ssa-sccvn.o): New.
3428         (OBJS-common): Add tree-ssa-sccvn.o
3429         
3430 2007-06-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3431
3432         PR c/4076
3433         * c-typeck.c (build_external_ref): Don't mark as used if called
3434         from itself.
3435         * calls.c (rtx_for_function_call): Likewise.
3436         
3437 2007-06-30  Richard Sandiford  <richard@codesourcery.com>
3438
3439         Revert:
3440
3441         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
3442
3443         * dce.c (deletable_insn_p_1): New function, split out from...
3444         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
3445         specially, not those inside PARALLELs.  Remove BODY argument
3446         and adjust recursive call accordingly.
3447         (prescan_insns_for_dce): Update call to delete_insn_p.
3448
3449 2007-06-30  Rask Ingemann Lambertsen <rask@sygehus.dk>
3450
3451         * combine.c (combine_validate_cost): New parameter NEWOTHERPAT.
3452         (try_combine): Move potential calls to undo_all() so they happen
3453         before we commit to using the combined insns.
3454
3455 2006-06-30  Jan Hubicka  <jh@suse.cz>
3456
3457         * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit
3458         code.
3459
3460 2006-06-30  Thomas Neumann  <tneumann@users.sourceforge.net>
3461
3462         * ipa.c (cgraph_postorder): Cast according to the coding conventions.
3463         (cgraph_remove_unreachable_nodes): Likewise.
3464         * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0.
3465         * ipa-inline.c (update_caller_keys): Cast according to the coding
3466         conventions.
3467         (cgraph_decide_recursive_inlining): Likewise.
3468         (cgraph_decide_inlining_of_small_function): Likewise.
3469         (try_inline): Likewise.
3470         (cgraph_decide_inlining_incrementally): Likewise.
3471         * ipa-pure-const.c (get_function_state): Likewise.
3472         (scan_function): Likewise.
3473         (analyze_function): Likewise.
3474         (static_execute): Likewise.
3475         * gcc/ipa-reference.c (scan_for_static_refs): Likewise.
3476         (merge_callee_local_info): Likewise.
3477         (analyze_function): Use type safe memory macros.
3478         (static_execute): Likewise. Cast according to the coding conventions.
3479         * ipa-type-escape.c (scan_for_regs): Cast according to the coding
3480         conventions.
3481         * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable
3482         names.
3483         (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros.
3484         * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as
3485         variable names.
3486
3487 2007-06-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3488
3489         PR middle-end/30024
3490         * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0]
3491         for complex modes (both int and real).
3492
3493 2007-06-29  Jan Hubicka  <jh@suse.cz>
3494
3495         * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change.
3496
3497 2007-06-29  Jan Hubicka  <jh@suse.cz>
3498
3499         PR middle-end/32372
3500         * cse.c (cse_insn): Avoid invalid sharing in between register note and
3501         the insn pattern.
3502
3503 2007-06-29  Anatoly Sokolov <aesok@post.ru>
3504
3505         PR target/32335
3506         * config/avr/avr.c: Include dataflow header file.
3507         (expand_prologue): Adjust for prologue insn change.
3508         * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
3509         inside a insn.
3510
3511 2007-06-29  Richard Guenther  <rguenther@suse.de>
3512
3513         PR middle-end/32493
3514         * gimplify.c (gimplify_call_expr): Ignore variable argument parts
3515         during type verification.
3516
3517 2007-06-29  Jan Hubicka  <jh@suse.cz>
3518
3519         * recog.c (validate_change_rtx_1): Unshare TO argument.
3520
3521 2007-06-29  Uros Bizjak  <ubizjak@gmail.com>
3522
3523         PR tree-optimization/24659
3524         * tree-vect-transform.c (vectorizable_call): Handle
3525         (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
3526
3527         * config/i386/sse.md (vec_pack_sfix_v2df): New expander.
3528         * config/i386/i386.c (enum ix86_builtins)
3529         [IX86_BUILTIN_VEC_PACK_SFIX]: New constant.
3530         (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin
3531         description.
3532         (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as
3533         const using def_builtin_const.
3534         (ix86_expand_binop_builtin): Remove bogus assert() that insn wants
3535         input operands in the same modes as the result.
3536         (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT.
3537
3538 2007-06-29  Richard Sandiford  <rsandifo@nildram.co.uk>
3539
3540         * df-problems.c (df_set_unused_notes_for_mw): Fix formatting.
3541         (df_set_dead_notes_for_mw): Likewise.
3542
3543 2007-06-29  Eric Botcazou  <ebotcazou@adacore.com>
3544
3545         * c-common.c (pointer_int_sum): Do the negation in sizetype.
3546
3547 2007-06-28  DJ Delorie  <dj@redhat.com>
3548
3549         * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon.
3550
3551 2007-06-28  Geoffrey Keating  <geoffk@apple.com>
3552
3553         * doc/invoke.texi (C++ Dialect Options): Document
3554         fvisibility-ms-compat.
3555         * c.opt (fvisibility-ms-compat): New.
3556
3557 2007-06-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3558
3559         PR tree-opt/32417
3560         * tree-affine.c (aff_combination_add_elt): Handle
3561         pointer addition specially.
3562
3563 2007-06-28  Jakub Jelinek  <jakub@redhat.com>
3564
3565         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
3566         decl is non-external for AIX ABI.
3567
3568 2007-06-28  David Edelsohn  <edelsohn@gnu.org>
3569
3570         * config/rs6000/predicates.md (current_file_function_operand):
3571         Ensure the symbol is non-external for AIX ABI.
3572
3573 2007-06-28  Nick Clifton  <nickc@redhat.com>
3574
3575         * common.opt (fipa-matrix-reorg): Add Optimization attribute.
3576         (fdce, fdse, fpredictive-commoning): Likewise.
3577
3578 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3579
3580         PR other/31400
3581         * gcc.c (process_command): Recognize the new -static-libgfortran
3582         option.
3583
3584 2007-06-27  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3585
3586         PR target/32418
3587         * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix:
3588         Use a call clobbered hard reg instead of a pseudo reg.
3589
3590 2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
3591
3592         * config/sh/sh.md (load_gbr): Use correct operand constraint.
3593
3594 2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
3595
3596         PR target/32479
3597         * config/sh/sh.md (udivsi3): Don't wrap the sequence with
3598         REG_LIBCALL and REG_RETVAL notes.
3599         (divsi3, mulsi3): Likewise.
3600         (mulhisi3): Likewise.  Use emit_libcall_block.
3601         (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise.
3602
3603 2007-06-27  Seongbae Park  <seongbae.park@gmail.com>
3604
3605         PR rtl-optimization/32481
3606         * combine.c (adjust_for_new_dest): Rescan the changed insn.
3607
3608 2007-06-27  Richard Sandiford  <richard@codesourcery.com>
3609
3610         * dce.c (deletable_insn_p_1): New function, split out from...
3611         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
3612         specially, not those inside PARALLELs.  Remove BODY argument
3613         and adjust recursive call accordingly.
3614         (prescan_insns_for_dce): Update call to delete_insn_p.
3615
3616 2007-06-27  Richard Guenther  <rguenther@suse.de>
3617
3618         PR middle-end/32492
3619         * tree.h (fold_convertible_p): Declare.
3620         * fold-const.c (fold_convertible_p): New function.
3621         * gimplify.c (gimplify_call_expr): Use fold_convertible_p
3622         instead of lang_hooks.types_compatible_p.
3623
3624 2007-06-26  Jan Hubicka  <jh@suse.cz>
3625
3626         * fwprop.c (try_fwprop_subst): Use validate_unshare_change.
3627         * postreload.c (reload_cse_simplify_set): Instead of copying the rtx
3628         early use validate_unshare_change.
3629         (reload_combine): Likewise.
3630         * recog.c (change_t): New field unshare.
3631         (validate_change_1): Rename from validate_change; add argument unshare.
3632         (validate_change): Turn into wrapper of validate_change_1; update
3633         prototype for bools.
3634         (validate_unshare_change): New.
3635         (confirm_change_group): Unshare changes if asked for; avoid unnecesary
3636         calls of df_insn_rescan.
3637         * recog.h (validate_change): Replace ints by bools.
3638         (validate_unshare_change): Declare.
3639
3640 2007-06-26  Kenneth Zadeck <zadeck@naturalbridge.com>
3641
3642         * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
3643         
3644 2007-06-26  Steve Ellcey  <sje@cup.hp.com>
3645
3646         * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode.
3647
3648 2007-06-25  Jan Hubicka  <jh@suse.cz>
3649
3650         * ipa-inline.c (cgraph_mark_inline): Assert that we never inline
3651         uninlinable call.
3652         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining,
3653         cgraph_decide_inlining_incrementally): Move uninlinability checks to
3654         places other call site specific checks are performed.
3655
3656 2007-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3657
3658         PR tree-opt/32421
3659         * tree-vect-transform.c (vectorizable_operation): Convert
3660         POINTER_PLUS_EXPR over to PLUS_EXPR.
3661
3662 2007-06-25  Chao-ying Fu  <fu@mips.com>
3663
3664         * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
3665         UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
3666         Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
3667         Document GET_MODE_IBIT, and GET_MODE_FBIT.
3668
3669         * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
3670         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
3671         (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
3672         SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
3673         SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
3674         ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
3675         ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
3676         SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
3677         ALL_FIXED_POINT_MODE_P): New define.
3678         (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
3679         MODE_UACCUM.
3680         (GET_MODE_IBIT, GET_MODE_FBIT): New define.
3681
3682         * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
3683         MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
3684         MODE_VECTOR_UACCUM): New mode classes.
3685
3686         * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
3687         UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
3688         Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
3689         USA, UDA, and UTA.
3690
3691         * genmodes.c (struct mode_data): Add ibit and fbit fields.
3692         (blank_mode): Initialize ibit and fbit.
3693         (adj_ibit, adj_fbit): New to adjust ibit and fbit.
3694         (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
3695         MODE_UACCUM.
3696         (new_adjust): Change required_class to required_class_from and
3697         required_class_to for testing within a range.
3698         (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
3699         MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
3700         MODE_VECTOR_UACCUM.
3701         (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
3702         (make_fixed_point_mode): New.
3703         (_ADD_ADJUST): Change C to C1 and C2.
3704         (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
3705         use a range for machine classes.
3706         (ADJUST_IBIT, ADJUST_FBIT): New.
3707         (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
3708         CONST_MODE_FBIT.
3709         (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
3710         MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
3711         Emit adjustment for ibit and fbit.
3712         (emit_mode_ibit, emit_mode_fbit): New.
3713         (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.
3714
3715 2007-06-25  Nathan Froyd  <froydnj@codesourcery.com>
3716
3717         * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand
3718         as the source of the set.
3719
3720 2007-06-25  Roman Zippel <zippel@linux-m68k.org>
3721
3722         * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
3723         FP_REGNO_P): Use IN_RANGE.
3724         (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
3725         (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
3726         (DATA_REG_P): Use DATA_REGNO_P.
3727         (FP_REG_P): Use FP_REGNO_P.
3728         (ADDRESS_REG_P): Use ADDRESS_REGNO_P.
3729         * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
3730         REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.
3731
3732 2007-06-24  Jan Hubicka  <jh@suse.cz>
3733
3734         PR middle-end/30563
3735         * cgraphunit.c (cgraph_analyze_function): Fix ordering problem.
3736
3737 2007-06-24  Sebastian Pop  <sebpop@gmail.com>
3738
3739         PR middle-end/32461
3740         * fold-const.c (fold_binary): Strip nops of operand 0
3741         of BIT_NOT_EXPR before calling operand_equal_p.
3742         * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New.
3743         * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New.
3744
3745 2007-06-23  Mark Mitchell  <mark@codesourcery.com>
3746
3747         * doc/extend.texi: Document that dllimport and dllexport imply
3748         default visibility.
3749         * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the
3750         imported or exported declaration, including type declarations.
3751         * c-common.c (handle_visibility_attribute): Check for conflicts
3752         with dllimport/dllexport.
3753         (c_determine_visibility): Handle dllimport/dllexport as an
3754         explicit visibility atttribute.
3755
3756 2007-06-23  Richard Guenther  <rguenther@suse.de>
3757
3758         PR tree-optimization/16876
3759         PR middle-end/29478
3760         * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag
3761         for CALL_EXPRs.
3762         * tree-inline.c (initialize_inlined_parameters): Do not call
3763         lang_hooks.tree_inlining.convert_parm_for_inlining.
3764         * cgraphbuild.c (initialize_inline_failed): Set inline failed
3765         reason for mismatched types.
3766         * gimplify.c (gimplify_call_expr): Verify the call expression
3767         arguments match the called function type signature.  Otherwise
3768         mark the call expression to be not considered for inlining
3769         using CALL_CANNOT_INLINE_P flag.
3770         * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the
3771         edges call expression.
3772         (cgraph_decide_inlining_of_small_function): Likewise.
3773         (cgraph_decide_inlining): Likewise.
3774         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
3775         Remove define.
3776         * c-tree.h (c_convert_parm_for_inlining): Remove declaration.
3777         * c-typeck.c (c_convert_parm_for_inlining): Remove.
3778         * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining):
3779         Remove declaration.
3780         (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define.
3781         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining):
3782         Remove.
3783         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
3784         convert_parm_for_inlining member.
3785
3786 2007-06-23  Richard Earnshaw  <rearnsha@arm.com>
3787
3788         PR target/31152
3789         * arm.md (negscc): Match the correct operand for optimized LT0 test.
3790         Remove optimization for GT.
3791
3792 2007-06-23  Kenneth Zadeck <zadeck@naturalbridge.com>
3793
3794         PR middle-end/32437
3795         * dce.c (deletable_insn_p): Add extra parameter and recurse if insn
3796         is a PARALLEL.
3797         (prescan_insns_for_dce): Add extra parameter.
3798         
3799 2007-06-23  Jan Hubicka  <jh@suse.cz>
3800
3801         PR middle-end/31541
3802         * gimplify.c (mark_addressable): New function.
3803         (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it.
3804
3805 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
3806
3807         PR middle-end/32374
3808         * expr.c (store_constructor): Do not clobber non-zeroed memory. 
3809
3810 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
3811
3812         PR target/32413
3813         * config/i386/i386.c (ix86_register_move_cost): Rise the cost of
3814         moves between MMX/SSE registers to at least 8 units to prevent
3815         ICE caused by non-tieable SI/HI/QImodes in SSE registers. 
3816
3817 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
3818
3819         * config/i386/i386.c (override_options): Correct x86_sahf
3820         setting condition.
3821
3822 2007-06-21  David Daney  <ddaney@avtrex.com>
3823
3824         PR target/32406
3825         * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
3826         to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
3827         (exception_receiver): Renamed to ...
3828         (nonlocal_goto_receiver): ... this.
3829
3830 2007-06-22  Roman Zippel <zippel@linux-m68k.org>
3831
3832         * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE.
3833         (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for
3834         partial register accesses.
3835
3836 2007-06-21  Adam Nemet  <anemet@caviumnetworks.com>
3837
3838         * fold-const.c (debug_fold_checksum): Move it under
3839         ENABLE_FOLD_CHECKING.
3840
3841 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
3842
3843         PR middle-end/20623
3844         * tree.h (debug_fold_checksum): Declared.
3845         * fold-const.c (build_fold_addr_expr_with_type_1): New.
3846         (build_fold_addr_expr_with_type, build_fold_addr_expr): Use 
3847         build_fold_addr_expr_with_type_1.
3848         (fold_addr_expr, debug_fold_checksum): New.
3849         (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME.
3850         (fold_unary, fold_comparison, split_address_to_core_and_offset):
3851         Use fold_addr_expr.
3852         
3853 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
3854
3855         PR tree-optimization/19590
3856         * tree-vrp.c (adjust_range_with_scev): Set the range when the result
3857         of scev is a constant.
3858         * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
3859
3860 2007-06-21  Kenneth Zadeck <zadeck@naturalbridge.com>
3861
3862         * df-problems.c (df_note_bb_compute): Made computation of live
3863         info consistent with df_lr.
3864
3865 2007-06-21  Richard Guenther  <rguenther@suse.de>
3866
3867         PR tree-optimization/32453
3868         * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR
3869         for pointer anti-range.
3870
3871 2007-06-21  H.J. Lu  <hongjiu.lu@intel.com>
3872
3873         * config/i386/i386.c (processor_target_table): Increase maximum
3874         skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
3875         default 64bit.
3876
3877         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
3878         byte alignment if > 8 byte alignment is preferred.
3879         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
3880
3881 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
3882
3883         PR tree-optimization/31866
3884         * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
3885         if ASM_EXPR's input is not a SSA_NAME.
3886
3887         PR middle-end/32362
3888         * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
3889         but decl is a global var, instead return decl.
3890         * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
3891         even for is_global_var decls, if they are private in some outer
3892         context.
3893
3894 2007-06-21  Richard Guenther  <rguenther@suse.de>
3895
3896         PR tree-optimization/32451
3897         * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.
3898
3899 2007-06-21  Christian Bruel  <christian.bruel@st.com>
3900
3901         * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
3902         * config/sh/sh.c (sh_loads_bankedreg_p): New function.
3903         (push_regs): Changed saving order or banked registers.
3904         (sh_expand_epilogue): Likewise.
3905         * config/sh/sh.h (BANKED_REGISTER_P): New macro.
3906         (FIRST_BANKED_REG): Likewise.
3907         (LAST_BANKED_REG): Likewise.
3908         * config/sh/sh.md (banked) New attribute.
3909         (in_delay_slot): Check banked attribute.
3910         
3911 2007-06-20  Sebastian Pop  <sebpop@gmail.com>
3912
3913         PR tree-optimization/32075
3914         * tree-data-ref.c (subscript_dependence_tester_1, 
3915         analyze_miv_subscript, analyze_overlapping_iterations,
3916         add_distance_for_zero_overlaps, build_classic_dist_vector,
3917         subscript_dependence_tester_1, analyze_overlapping_iterations,
3918         subscript_dependence_tester, access_functions_are_affine_or_constant_p,
3919         compute_affine_dependence, compute_all_dependences): Pass loop_nest 
3920         to evolution_function_is_affine_multivariate_p.
3921
3922 2007-06-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
3923
3924         * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
3925
3926 2007-06-20  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3927
3928         PR target/32335
3929         * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
3930         for TARGET_A16.
3931         * config/m32c/prologue.md (epilogue_exitd_16): New.
3932         (epilogue_reit_16): New.
3933         (epilogue_exitd): Rename to epilogue_exitd_24.
3934         (epilogue_reit): Rename to epilogue_reit_24.
3935
3936 2007-06-20  Seongbae Park  <seongbae.park@gmail.com>
3937             Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
3938
3939         * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
3940         New counters.
3941         * haifa-sched.c (queue_to_ready): Don't requeue next insn
3942         if dbg_cnt (sched_insn) reaches the limit.
3943         (choose_ready): New parameter INSN_PTR and new return value.
3944         (schedule_block): Handle dbg_cnt (sched_insn). Handle
3945         the new return value from choose_ready.
3946         * global.c (global_aloc): New dbgcnt global_alloc_at_reg.
3947         (rest_of_handle_global_alloc): New global_alloc_at_func.
3948
3949 2007-06-20  Adam Nemet  <anemet@caviumnetworks.com>
3950
3951         PR tree-optimization/25737
3952         * tree.h (struct tree_struct_field_tag): Add new field alias_set.
3953         (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
3954         * tree-flow.h (struct fieldoff): Add new field alias_set.
3955         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
3956         argument addressable_type.  Set alias_set of fieldoff.
3957         * tree-ssa-alias.c (create_sft): Add new argument alias_set.
3958         (create_overlap_variables_for): Pass alias_set from fieldoff to
3959         create_sft.
3960         * alias.c (get_alias_set): Use alias_set from SFT if set.
3961
3962 2007-06-20  Hui-May Chang  <hm.chang@apple.com>
3963
3964         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
3965         of a variable as an unsigned HOST_WIDE_INT integer.
3966
3967 2007-06-20  Zdenek Dvorak  <dvorakz@suse.cz>
3968
3969         PR rtl-optimization/32405
3970         * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
3971
3972 2007-06-20  Jakub Jelinek  <jakub@redhat.com>
3973
3974         * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
3975
3976         PR middle-end/31959
3977         * builtins.c: Include diagnostic.h.
3978         (expand_builtin_expect): Make gcc_assert more permissive.
3979         * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
3980
3981         PR inline-asm/32109
3982         * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
3983         and !allows_mem.
3984
3985         PR middle-end/32285
3986         * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
3987         if ACCUMULATE_OUTGOING_ARGS.
3988
3989 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3990
3991         * config/m68hc11/m68hc11.c: Include dataflow header file.
3992         (m68hc11_reorg): Port to dataflow.
3993
3994 2007-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
3995
3996         * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
3997         (struct df_problem.free_blocks_on_set_blocks): New field.
3998         (struct dataflow.optional_p): New field.
3999         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
4000         (df_live_set_all_dirty): New function.
4001         * df-scan.c (df_scan_alloc): Initialize optional_p.
4002         (problem_SCAN): Initialize free_blocks_on_set_blocks.
4003         * df-core.c (df_set_blocks): Removed use of
4004         DF_FIRST_OPTIONAL_PROBLEM.  Now uses
4005         df_problem.free_blocks_on_set_blocks to determine which blocks are
4006         recycled.
4007         (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
4008         (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM.  Now
4009         uses dataflow.optional_p to determine if problem should be
4010         deleted.
4011         (rest_of_handle_df_initialize): Only start live problem if 
4012         -02 or above.
4013         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
4014         * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
4015         df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
4016         (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
4017         problem_NOTE):  Initialize free_blocks_on_set_blocks.
4018         (df_lr_bb_local_compute): Recompute luids if df_live problem is
4019         not active.
4020         (df_live_set_all_dirty, df_note_alloc): New function.
4021         * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
4022         df_get_live_*.
4023         * sched_ebb.c (compute_jump_reg_dependencies): Ditto.
4024         * postreload.c (reload_combine): Ditto.
4025         * cse.c (cse_extended_basic_block): Ditto.
4026         * regmove.c (mark_flags_life_zones): Ditto.
4027         * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
4028         erase_matching_seqs): Ditto.
4029         * bt-load.c (compute_defs_uses_and_gen): Ditto.
4030         * integrate (allocate_initial_values): Ditto.
4031         * combine.c (reg_dead_at_p): Ditto.
4032         * resource.c (mark_target_live_regs): Ditto.
4033         * sched-rgn.c (check_live_1, update_live_1): Ditto.
4034         * config/sh/sh.c (find_r0_life_regions): Ditto.
4035         * global.c (rest_of_handle_global_alloc): Only add back df_live
4036         for -O > 1.
4037         * local-alloc.c (rest_of_handle_local_alloc): Only remove
4038         df_live for -O > 1.
4039         * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
4040         df_get_live_*.
4041         (if_convert): Make sure df_live is there at -O == 1.
4042         (pass_if_after_combine): Cleanup flags.
4043         * init-regs.c (initialize_uninitialized_regs): Make sure df_live
4044         is there at -O == 1.
4045         
4046 2007-06-19  Seongbae Park  <seongbae.park@gmail.com>
4047
4048         * config/arm/arm.c (arm_get_frame_offsets): Set
4049         offsets->locals_base to avoid negative stack size.
4050         (thumb1_expand_prologue): Assert on negative stack size.
4051
4052 2007-06-19  Sebastian Pop  <sebpop@gmail.com>
4053
4054         PR tree-optimization/32367
4055         * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side 
4056         of the chrec has no evolution in that loop.
4057         * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
4058
4059 2007-06-19  Bob Wilson  <bob.wilson@acm.org>
4060
4061         * config/xtensa/xtensa.c: Include "df.h".
4062         (xtensa_builtin_saveregs): Use adjust_address instead of
4063         change_address.
4064         (xtensa_va_start): Invoke make_tree with sizetype for
4065         expand_builtin_saveregs and then convert the result to a pointer.
4066         Use POINTER_PLUS_EXPR.  Use size_int instead of build_int_cst.
4067         (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
4068         Subtract argument size from index value as integers and then use
4069         POINTER_PLUS_EXPR to add the result to the array address.
4070         
4071 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
4072
4073         PR target/32335
4074         * config/m32c/m32c.c: Include dataflow header file.
4075         (m32c_emit_prologue): Adjust for prologue insn change.
4076         * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
4077         once inside a PARALLEL. Assume frame size passed in operand 0
4078         includes space to save the fb register.
4079         (prologue_enter_24): Likewise.
4080         (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
4081
4082 2007-06-19  David Daney  <ddaney@avtrex.com
4083
4084         PR target/32313
4085         * config/mips/mips.md (cprestore): Mark $gp as used.
4086
4087 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
4088
4089         PR target/32369
4090         * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
4091         (frv_ifcvt_modify_insn): Likewise.
4092
4093 2007-06-19  Richard Guenther  <rguenther@suse.de>
4094
4095         * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
4096         only handle positive offsets that fit in a HOST_WIDE_INT.
4097
4098 2007-06-19  Uros Bizjak  <ubizjak@gmail.com>
4099
4100         * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
4101         result of rsqrt insn for zero input argument to avoid NaN.
4102
4103 2007-06-19  Richard Guenther  <rguenther@suse.de>
4104
4105         PR middle-end/31950
4106         * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
4107
4108 2007-06-19  Jakub Jelinek  <jakub@redhat.com>
4109
4110         PR tree-optimization/32353
4111         * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
4112
4113 2007-06-19  Nick Clifton  <nickc@redhat.com>
4114
4115         * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.
4116
4117 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
4118
4119         PR target/32389
4120         * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
4121         * config/i386/i386.c (assign_386_stack_local): Assert that
4122         SLOT_VIRTUAL is valid only before virtual regs are instantiated.
4123         (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
4124         Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
4125         * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
4126
4127 2007-06-18  Steve Ellcey  <sje@cup.hp.com>
4128
4129         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
4130
4131 2007-06-18  Seongbae Park  <seongbae.park@gmail.com>
4132
4133         PR rtl-optimization/32321
4134         * gcse.c (replace_store_insn): Update the note before
4135         calling emit_insn_after.
4136
4137 2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>
4138
4139         PR middle-end/32355
4140         * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
4141         cse_main.
4142         * df-problems.c (df_note_bb_compute): Fix dumping info.
4143         
4144 2007-06-18  Kazu Hirata  <kazu@codesourcery.com>
4145
4146         * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
4147         insn with emit_jump_insn.
4148
4149 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
4150
4151         PR tree-optimization/32383
4152         * targhooks.c (default_builtin_reciprocal): Add new bool argument.
4153         * targhooks.h (default_builtin_reciprocal): Update prototype.
4154         * target.h (struct gcc_target): Update builtin_reciprocal.
4155         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
4156         * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
4157         where arg1 is not SSA_NAME.  Pass true to targetm.builtin_reciprocal
4158         when fndecl is in BUILT_IN_MD class.
4159         (execute_convert_to_rsqrt): Ditto.
4160
4161         * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
4162         argument.  Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
4163         Convert BUILT_IN_SQRTF code only  when md_fn is false.
4164
4165 2007-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
4166
4167         * bt-load.c (move_btr_def): Fix the order of arguments
4168         to validate_replace_rtx.
4169
4170 2007-06-18  Nathan Sidwell  <nathan@codesourcery.com>
4171
4172         * config/m68k/m68k-devices.def: Add 54450..54455.
4173
4174 2007-06-17  Uros Bizjak  <ubizjak@gmail.com>
4175
4176         PR rtl-optimization/32366
4177         * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
4178         FLOAT_EXTEND]: Prevent non-scalar modes from entering
4179         significand_size.
4180
4181 2007-06-17  Kenneth Zadeck <zadeck@naturalbridge.com>
4182
4183         PR middle-end/32349
4184         * modulo-sched (generate_reg_moves): Added rescan parameter and if
4185         this is true, rescan insn being modified.
4186         (sms_schedule): Added rescan parameter.
4187         (rest_of_handle_sms): Moved freeing of dominance info to before
4188         getting out of cfg_layout.
4189         
4190 2007-06-17  Nathan Sidwell  <nathan@codesourcery.com>
4191
4192         * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
4193         * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
4194         appropriate.
4195
4196         * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
4197         FL_CF_EMAC from the entry for isac.
4198
4199         * config/m68k/predicates.md (const_call_operand): Adjust comment.
4200         (const_sibcall_operand): New.
4201         (sibcall_operand): Use it.
4202         * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
4203         (m68k_isas): ISAC does not imply FPU or EMAC.
4204         (override_options): Add ISA_C logic for symbolic jump & call.
4205
4206 2007-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
4207
4208         * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
4209         return mode from the builtin itself.
4210         (sparc_fold_builtin): Fix cast of zero constant.
4211
4212 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
4213
4214         * targhooks.c (default_builtin_reciprocal): New default target hook.
4215         * targhooks.h (default_builtin_reciprocal): Add prototype.
4216         * hooks.c (hook_tree_tree_bool_null): Remove hook.
4217         * hooks.h (hook_tree_tree_bool_null): Remove prototype.
4218         * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
4219         default_builtin_reciprocal.
4220
4221 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
4222
4223         PR middle-end/31723
4224         * hooks.c (hook_tree_tree_bool_null): New hook.
4225         * hooks.h (hook_tree_tree_bool_null): Add prototype.
4226         * tree-pass.h (pass_convert_to_rsqrt): Declare.
4227         * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
4228         * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
4229         and convert it to reciprocal a*rfunc(b).
4230         (execute_convert_to_rsqrt): New function.
4231         (gate_convert_to_rsqrt): New function.
4232         (pass_convert_to_rsqrt): New pass definition.
4233         * target.h (struct gcc_target): Add builtin_reciprocal.
4234         * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
4235         (TARGET_INITIALIZER): Initialize builtin_reciprocal with
4236         TARGET_BUILTIN_RECIPROCAL.
4237         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
4238
4239         * config/i386/i386.h (TARGET_RECIP): New define.
4240         * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
4241         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
4242         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
4243         and not optimizing for size.
4244         (*rcpsf2_sse): New insn pattern.
4245         (*rsqrtsf2_sse): Ditto.
4246         (rsqrtsf2): New expander.  Expand by calling ix86_emit_swsqrtsf
4247         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
4248         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
4249         and not optimizing for size.
4250         (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
4251         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
4252         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
4253         and not optimizing for size.
4254         * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
4255         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
4256         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
4257         and not optimizing for size.
4258         (*sse_rsqrtv4sf2): Do not export.
4259         (sqrtv4sf2): Ditto.
4260         (sse_rsqrtv4sf2): New expander.  Expand by calling ix86_emit_swsqrtsf
4261         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
4262         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
4263         and not optimizing for size.
4264         (sqrtv4sf2): Ditto.
4265         * config/i386/i386.opt (mrecip): New option.
4266         * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
4267         (ix86_emit_swsqrtsf): Ditto.
4268         * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
4269         (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
4270         builtin definition.
4271         (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
4272         ix86_expand_unop1_builtin.
4273         (ix86_emit_swdivsf): New function.
4274         (ix86_emit_swsqrtsf): Ditto.
4275         (ix86_builtin_reciprocal): New function.
4276         (TARGET_BUILTIN_RECIPROCAL): Use it.
4277         (ix86_vectorize_builtin_conversion): Rename from
4278         ix86_builtin_conversion.
4279         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
4280         * doc/invoke.texi (Machine Dependent Options): Add -mrecip to
4281         "i386 and x86_64 Options" section.
4282         (Intel 386 and AMD x86_64 Options): Document -mrecip.
4283
4284 2007-06-15  Andrew Pinski <andrew_pinski@playstation.sony.com>
4285             Zdenek Dvorak <dvorakz@suse.cz>
4286             Richard Guenther  <rguenther@suse.de>
4287             Kaz Kojima  <kkojima@gcc.gnu.org>
4288
4289         * tree-vrp.c (compare_values_warnv): Convert val2 to
4290         the type of val1.
4291         (extract_range_from_assert): Create
4292         POINTER_PLUS_EXPR for pointer types.
4293         (extract_range_from_binary_expr): Handle
4294         only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
4295         for pointer types.
4296         * doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
4297         * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
4298         POINTER_PLUS_EXPR as PLUS_EXPR.
4299         (number_of_iterations_lt_to_ne):
4300         For pointer types, use sizetype when
4301         creating MINUS_EXPR/PLUS_EXPRs.
4302         (assert_loop_rolls_lt): For pointer types, use sizetype when
4303         creating MINUS_EXPR/PLUS_EXPRs.
4304         (number_of_iterations_le): Likewise.
4305         (expand_simple_operations): POINTER_PLUS_EXPR are simple also.
4306         (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
4307         like PLUS_EXPR and MINUS_EXPR.
4308         * tree-pretty-print.c (dump_generic_node): Handle
4309         POINTER_PLUS_EXPR.
4310         (op_prio): Likewise.
4311         (op_symbol_1): Likewise.
4312         * optabs.c (optab_for_tree_code): Likewise.
4313         * tree-ssa-loop-manip.c (create_iv): Handle pointer base
4314         specially.
4315         * tree-tailcall.c (process_assignment): Mention
4316         POINTER_PLUS_EXPR in a TODO comment.
4317         * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or 
4318         MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
4319         not used with a pointer and an integer type.
4320         * tree-scalar-evolution.c (add_to_evolution_1): Convert the
4321         increment using chrec_convert_rhs instead of chrec_convert.
4322         (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
4323         PLUS_EXPR except for the right hand side's type will be
4324         sizetype.
4325         (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
4326         (fold_used_pointer_cast): Kill.
4327         (pointer_offset_p): Kill.
4328         (fold_used_pointer): Kill.
4329         (pointer_used_p): Kill.
4330         (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
4331         call fold_used_pointer.
4332         (instantiate_parameters_1): Convert the increment
4333         using chrec_convert_rhs instead of chrec_convert.
4334         Handle POINTER_PLUS_EXPR as PLUS_EXPR.
4335         * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
4336         instead of PLUS_EXPR.
4337         (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
4338         PLUS_EXPR for pointers.
4339         (std_gimplify_va_arg_expr): Likewise.
4340         (fold_builtin_memory_op): Likewise.
4341         (fold_builtin_strstr): Likewise.
4342         (fold_builtin_strchr): Likewise.
4343         (fold_builtin_strrchr): Likewise.
4344         (fold_builtin_strpbrk): Likewise.
4345         (expand_builtin_memory_chk): Likewise.
4346         (fold_builtin_memory_chk): Likewise.
4347         (std_expand_builtin_va_start): Use
4348         sizetype for the call to make_tree and then convert
4349         to the pointer type.
4350         (fold_builtin_memchr): Use POINTER_PLUS_EXPR
4351         instead of PLUS_EXPR for adding to a pointer.
4352         (std_gimplify_va_arg_expr): Use fold_build2 for
4353         the creating of POINTER_PLUS_EXPR.  For the BIT_AND_EXPR, cast
4354         the operands to sizetype first and then cast the BIT_AND_EXPR
4355         back to the pointer type.
4356         * fold-const.c (build_range_check): Handle pointer types
4357         specially.
4358         (extract_array_ref): Look for POINTER_PLUS_EXPR instead
4359         of PLUS_EXPR's. Make sure the offset is converted to
4360         sizetype.
4361         (try_move_mult_to_index): Strip the NOPs from the offset.
4362         Remove code argument and replace all uses with PLUS_EXPR.
4363         (fold_to_nonsharp_ineq_using_bound): Handle pointer types
4364         specially. Don't use a pointer type for MINUS_EXPR.
4365         (fold_unary): Handle for (T1)(X op Y),
4366         only p+ as that is the only as that can be handled for
4367         binary operators now.
4368         (fold_binary <case POINTER_PLUS_EXPR>): Add folding of
4369         POINTER_PLUS_EXPR.
4370         <case PLUS_EXPR>: Add folding of PTR+INT into
4371         PTR p+ INT.
4372         Don't call try_move_mult_to_index.
4373         <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
4374         into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
4375         (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
4376         Don't call try_move_mult_to_index.
4377         (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
4378         (tree_expr_nonzero_p): Likewise.
4379         (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
4380         of PLUS_EXPR for the complex expression folding.
4381         * tree-chrec.c (chrec_fold_plus_poly_poly): If the
4382         first chrec is a pointer type, then the second should
4383         be sizetype and not the first's type.
4384         For POINTER_PLUS_EXPR, use a different right hand side type.
4385         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
4386         (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
4387         different right hand side type.
4388         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
4389         (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
4390         instead of PLUS_EXPR.
4391         When either operand is zero, convert the other operand.
4392         (chrec_apply): Use chrec_convert_rhs
4393         on the argument x instead of chrec_convert.
4394         (reset_evolution_in_loop): For pointer types, the new_evol
4395         should be sizetype.
4396         (convert_affine_scev): For POINTER_PLUS_EXPR, use a
4397         different right hand side type.
4398         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
4399         (chrec_convert_rhs): New function.
4400         (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
4401         different right hand side type.
4402         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
4403         * tree-chrec.h (chrec_convert_rhs): New prototype.
4404         (build_polynomial_chrec): For pointer types, the right hand
4405         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
4406         POINTER_PLUS_EXPR instead of PLUS_EXPR's.
4407         Remove subtraction case as it is always addition now.
4408         Make sure the offset is converted to sizetype.
4409         (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
4410         Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
4411         * tree-ssa-loop-ivopts.c (determine_base_object): Abort for 
4412         PLUS_EXPR in pointer type.
4413         Handle POINTER_PLUS_EXPR.
4414         (tree_to_aff_combination): Likewise.
4415         (force_expr_to_var_cost): Likewise.
4416         (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
4417         instead of PLUS_EXPR for pointers.
4418         * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
4419         instead of PLUS_EXPR of pointer types.
4420         * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
4421         as PLUS_EXPR.
4422         (check_va_list_escapes): Likewise.
4423         (check_all_va_list_escapes): Likewise.
4424         * dwarf2out.c (loc_descriptor_from_tree_1):
4425         Handle POINT_PLUS_EXPR as a PLUS_EXPR.
4426         * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
4427         (string_constant): Likewise.
4428         * tree-ssa-address.c (tree_mem_ref_addr): When adding
4429         the offset to the base, use POINTER_PLUS_EXPR.
4430         (add_to_parts): Convert the index to sizetype.
4431         (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
4432         * matrix-reorg.c (collect_data_for_malloc_call): Stmt
4433         will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
4434         Offset only holds something for PLUS_EXPR.
4435         (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
4436         a PLUS_EXPR.
4437         (analyze_transpose): POINTER_PLUS_EXPR will only show up now
4438         and not PLUS_EXPR.
4439         (analyze_accesses_for_modify_stmt): Likewise.
4440         Remove comment about the type being integral type as it is
4441         wrong now.
4442         (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
4443         PLUS_EXPR.
4444         (transform_access_sites): POINTER_PLUS_EXPR will only show up now
4445         and not PLUS_EXPR.
4446         Correct the type which the artimentic is done in (is now
4447         sizetype).
4448         Reindent one loop.
4449         * tree-data-ref.c (split_constant_offset): Handle
4450         POINTER_PLUS_EXPR
4451         * tree-affine.c (tree_to_aff_combination): Likewise.
4452         * c-typeck.c (build_unary_op): For pointers create the increment
4453         as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
4454         for pointers.
4455         * gimplify.c (gimplify_self_mod_expr): Create a
4456         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
4457         (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
4458         * tree.def (POINTER_PLUS_EXPR): New tree code.
4459         * tree-predcom.c (ref_at_iteration): If we have a pointer
4460         type do the multiplication in sizetype.
4461         * tree-mudflap.c (mf_xform_derefs_1): Create a
4462         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
4463         * tree-ssa-forwprop.c 
4464         (forward_propagate_addr_into_variable_array_index):
4465         Don't expect there to be a cast for the index as that
4466         does not exist anymore.
4467         (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
4468         instead of PLUS_EXPR.
4469         Don't check for the first operand of the POINTER_PLUS_EXPR
4470         was the index as it cannot be.
4471         Call forward_propagate_addr_into_variable_array_index with
4472         the SSA_NAME instead of the statement.
4473         * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
4474         (compare_constant): Likewise.
4475         (copy_constant): Likewise.
4476         (compute_reloc_for_constant): Likewise.
4477         (output_addressed_constants): Likewise.
4478         (initializer_constant_valid_p): Likewise.
4479         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
4480         Convert the MIN/MAX of the inner type to the outer
4481         type before comparing them.
4482         * tree-ssa-loop-prefetch.c (idx_analyze_ref):  Handle
4483         POINTER_PLUS_EXPR instead of PLUS_EXPR.
4484         (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
4485         of PLUS_EXPR for pointers.
4486         * tree-inline.c (estimate_num_insns_1): Handle
4487         POINTER_PLUS_EXPR.
4488         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): 
4489         Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
4490         (bump_vector_ptr): Create a POINTER_PLUS_EXPR
4491         instead of PLUS_EXPR for the pointer increment statement.
4492         (vect_update_ivs_after_vectorizer): For pointer types, create
4493         POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
4494         MULT_EXPR in sizetype.
4495         (vect_gen_niters_for_prolog_loop): Add a cast when creating
4496         byte_misalign.
4497         * tree-object-size.c (plus_expr_object_size): Handle
4498         POINTER_PLUS_EXPR instead of PLUS_EXPR.  Removing all the extra
4499         code which is trying to figure out which side is a pointer and 
4500         is the index.
4501         (check_for_plus_in_loops_1): Likewise.
4502         (check_for_plus_in_loops): Likewise.
4503         * c-common.c (pointer_int_sum): Create a
4504         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
4505         * tree-ssa-structalias.c (handle_ptr_arith): Handle
4506         only POINTER_PLUS_EXPR.  Removing all the extra
4507         code which is trying to figure out which side is a pointer and 
4508         is the index.
4509         * tree-cfg.c (verify_expr): Add extra checking for pointers and
4510         PLUS_EXPR and MINUS_EXPR.
4511         Also add checking to make sure the operands of POINTER_PLUS_EXPR
4512         are correct.
4513         * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
4514         with make_tree, instead of a pointer type.
4515         * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
4516         for pointers instead of PLUS_EXPR.
4517         (s390_gimplify_va_arg): Likewise.
4518         * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
4519         instead of PLUS_EXPR when doing addition on pointer
4520         types.  Use sizetype for the second operand.
4521         (spu_gimplify_va_arg_expr): Likewise.
4522         * config/sparc/sparc.c (sparc_gimplify_va_arg): Use 
4523         POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
4524         a pointer.  Don't create a BIT_AND_EXPR for pointer types.
4525         * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
4526         for the pointer addition and also use size_int/sizetype
4527         for the offset.
4528         (ix86_gimplify_va_arg): Likewise.
4529         Perform BIT_AND_EXPR on sizetype arguments.
4530         * config/sh/sh.c (sh_va_start): Call make_tree with sizetype
4531         and convert its result to a pointer type.  Use POINTER_PLUS_EXPR
4532         for the pointer additions and also use size_int for the offsets.
4533         (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
4534         additions and also use size_int for the offsets.  Perform
4535         BIT_AND_EXPR on sizetype arguments.
4536         * config/ia64/ia64.c (ia64_gimplify_va_arg): Use
4537         POINTER_PLUS_EXPR for pointers and create the
4538         BIT_AND_EXPR in sizetype.
4539         * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
4540         instead of PLUS_EXPR for pointer addition.
4541         (rs6000_va_start): Likewise.
4542         Also use sizetype for the offset.
4543         * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
4544         as PLUS_EXPR/MINUS_EXPR.
4545         (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
4546         PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
4547         Don't use BIT_AND_EXPR on a pointer type, convert the
4548         expression to sizetype first.
4549         * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
4550         for pointers.
4551         (mips_gimplify_va_arg_expr): Likewise.
4552         Don't create BIT_AND_EXPR in a pointer type.
4553
4554 2007-06-15  Eric Christopher  <echristo@apple.com>
4555
4556         * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
4557         (x86_64-*-darwin*): Ditto.
4558         * config/i386/darwin.h (CRTEND_SPEC): New. Add support
4559         for above.
4560
4561 2007-06-15  Matthew Wilcox <matthew@wil.cx>
4562
4563         * doc/extend.texi: Document behavior of __attribute__((aligned))
4564         on typedefs.
4565
4566 2007-06-15  Mark Mitchell  <mark@codesourcery.com>
4567
4568         * rtlanal.c (note_stores): Improve documentation.
4569
4570 2007-06-15  Bernd Schmidt  <bernd.schmidt@analog.com>
4571
4572         * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
4573         LOCAL_LABEL_PREFIX): Delete.
4574         * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
4575         (bfin_internal_label): Delete.
4576
4577 2007-06-15  Uros Bizjak  <ubizjak@gmail.com>
4578
4579         * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
4580         define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
4581         otherwise define to LIBGCC2_TF_CEXT.
4582         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
4583         (LIBGCC_TF_CEXT): Ditto.
4584         (TF_SIZE): Ditto.
4585
4586 2007-06-14  Seongbae Park  <seongbae.park@gmail.com>
4587
4588         PR rtl-optimization/32339
4589         * df-scan.c (df_uses_record): Don't modify flags but just add to
4590         it for df_ref_record.
4591
4592 2007-06-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4593
4594         * tree-mudflap.c: Fix whitespace issues.
4595
4596 2007-06-15  Kazu Hirata  <kazu@codesourcery.com>
4597
4598         * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
4599
4600 2007-06-14  Eric Christopher  <echristo@apple.com>
4601
4602         * config/i386/sse.md (movdi_to_sse): Rewrite body.
4603         (movv4sf): Use gcc_unreachable instead of abort.
4604
4605 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
4606
4607         PR target/32268
4608         * config/i386/sfp-machine.h (CMPtype): New define.
4609         (mach stubs): Use CMPtype instead of int as a return type.
4610
4611 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
4612
4613         * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
4614         config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
4615         config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
4616         config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
4617         config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
4618         config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
4619         config/soft-fp/soft-fp.h: Update from glibc CVS.
4620
4621 2007-06-14  Bernd Schmidt  <bernd.schmidt@analog.com>
4622
4623         * config/bfin/uclinux.h (MFWRAP_SPEC): New.
4624
4625 2007-06-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
4626
4627         PR target/32341
4628         * config/v850/v850.c: Include dataflow header file.
4629         (substitute_ep_register): Fix typo.
4630
4631 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
4632
4633         * configure.ac: Fix earlier checkin.
4634         * configure: Regenerated.
4635
4636 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
4637
4638         * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
4639         * aclocal.m4: Regenerate.
4640         * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
4641         ACX_PROG_CC_WARNINGS_ARE_ERRORS,
4642         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
4643         * configure: Regenerate.
4644         * Makefile.in (LOOSE_WARN): Subst loose_warn.
4645
4646         * Makefile.in (quickstrap): Build libgcc too.
4647
4648 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
4649
4650         * configure.ac: Add --enable-checking=df.  Explicitly mention that
4651         the variables are initialized as for "release".
4652         * df-core.c: Use it.
4653         * configure: Regenerate.
4654         * config.in: Regenerate.
4655
4656 2007-06-14  Bob Wilson  <bob.wilson@acm.org>
4657
4658         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
4659         validate_replace_rtx instead of replace_rtx.
4660         (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
4661
4662 2007-06-14  Danny Smith  <dannysmith@users.sourceforge.net>
4663
4664         * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
4665         (DWARF2_UNWIND_INFO): Override default if configured with
4666         SJLJ EH disabled.
4667         * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
4668         (ENDFILE_SPEC): Add crtend.o.
4669         * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
4670         (ENDFILE_SPEC): Add crtend.o.
4671         (TARGET_USE_JCR_SECTION): Define.
4672         (MD_UNWIND_SUPPORT): Define for 32-bit target.
4673
4674         * config/i386/cygming-crtbegin.c: New file.
4675         * config/i386/cygming-crtend.c: New file.
4676
4677 2007-06-14  Pascal Obry Pascal Obry  <obry@adacore.com>
4678
4679         * config/i386/w32-unwind.h: New file.
4680
4681 2007-06-13  Eric Christopher  <echristo@apple.com>
4682
4683         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
4684         the user set a value below STACK_BOUNDARY.
4685
4686 2007-06-13  Thiemo Seufer  <ths@networkno.de>
4687
4688         * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
4689         imply -lpthread for -pthread.
4690
4691 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
4692
4693         * basic-block.h: Remove the prototype for
4694         free_basic_block_vars.
4695         * cfglayout.h: Remove the prototype for
4696         insn_locators_initialize.
4697         * tree.h: Remove the prototype for emit_line_note.
4698
4699         * tree-ssa-pre.c (mergephitemp): Remove.
4700         (init_pre): Don't use mergephitemp.
4701
4702 2007-06-13  Eric Christopher  <echristo@apple.com>
4703
4704         * config/i386/i386.c (override_options): If we've specified
4705         an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
4706
4707 2007-06-13  Bob Wilson  <bob.wilson@acm.org>
4708
4709         * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
4710         is defined.
4711
4712 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
4713
4714         * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
4715         * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
4716         (eh_store_handler): New pattern.
4717         (eh_return): Emit it instead of a plain move.
4718
4719 2007-06-13  Uros Bizjak  <ubizjak@gmail.com>
4720
4721         * config/i386/i386.c (ix86_init_mmx_sse_builtins)
4722         [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
4723         [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
4724         def_builtin_const.
4725
4726 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
4727
4728         * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
4729         (find_next_insn_start, find_load): New functions.
4730         (bfin_reorg): Use them to deal with the fact that parallel insns are
4731         no longer represented as a SEQUENCE.
4732
4733 2007-06-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
4734
4735         * config/sparc/sparc.c (sparc_override_options): Initialize
4736         fpu mask correctly.
4737
4738 2007-06-13  Dave Korn  <dave.korn@artimi.com>
4739
4740         * config/i386/i386.c (ix86_eax_live_at_start_p): Use
4741         df_get_live_out.
4742
4743 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
4744
4745         * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
4746         config/sh/divcost-analysis, dbgcnt.def, df-core.c,
4747         df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
4748         tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
4749         tree-vect-transform.c: Fix comment typos.  Follow spelling
4750         conventions.
4751
4752 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
4753
4754        * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
4755        to the exit block use set.
4756        (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring". 
4757        * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
4758        * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
4759
4760 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
4761
4762         * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
4763         * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
4764         to indicate an error.
4765         (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters):
4766         New functions.
4767         (dbg_cnt_process_opt): Print an error on a bad argument.
4768         * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
4769         * common.opt (-fdbg-cnt-list): New.
4770         * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
4771
4772 2007-06-12  Eric Botcazou  <ebotcazou@adacore.com>
4773
4774         * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
4775         flag on ref-all pointers.
4776
4777 2007-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4778
4779         PR middle-end/31579
4780         * expr.c (expand_expr_addr_expr_1): Call expand_expr
4781         for the offset with the modifier as EXPAND_INITIALIZER
4782         if the modifier is EXPAND_INITIALIZER.
4783         (expand_expr_real_1 <case INTEGER_CST>): Don't force to
4784         a register if we had an overflow.
4785
4786 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4787
4788         * real.c (real_isfinite): New.
4789         (real_sqrt): Use it.
4790         * real.h (real_isfinite): New.
4791         * builtins.c: Use it.
4792
4793 2007-06-12  Ian Lance Taylor  <iant@google.com>
4794             Daniel Berlin  <dberlin@dberlin.org>
4795
4796         PR libstdc++/29286
4797         * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
4798         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
4799         (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
4800         (DECL_NO_TBAA_P): Define.
4801         (struct tree_decl_common): Add no_tbaa_flag field.
4802         * tree-ssa-structalias.c (struct variable_info): Add
4803         no_tbaa_pruning field.
4804         (new_var_info): Initialize no_tbaa_pruning field.
4805         (unify_nodes): Copy no_tbaa_pruning field.
4806         (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
4807         (dump_solution_for_var): Print no_tbaa_pruning flag.
4808         (set_uids_in_ptset): Add no_tbaa_pruning parameter.  Change all
4809         callers.
4810         (compute_tbaa_pruning): New static function.
4811         (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
4812         Call compute_tbaa_pruning.
4813         * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
4814         * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
4815         * gimple-low.c (lower_stmt): Likewise.
4816         * tree-gimple.c (is_gimple_stmt): Likewise.
4817         * tree-ssa-operands.c (get_expr_operands): Likewise.
4818         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4819         * tree-inline.c (estimate_num_insns_1): Likewise.
4820         (copy_result_decl_to_var): Likewise.
4821         * expr.c (expand_expr_real_1): Likewise.
4822         * tree-pretty-print.c (dump_generic_node): Likewise.
4823         * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
4824         * omp-low.c (omp_copy_decl_2): Likewise.
4825         * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
4826         * doc/c-tree.texi (Expression trees): Document
4827         CHANGE_DYNAMIC_TYPE_EXPR.
4828
4829 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4830
4831         * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
4832         with !HONOR_NANS and !HONOR_INFINITIES.
4833         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
4834
4835 2007-06-12  Tristan Gingold  <gingold@adacore.com>
4836
4837         * gcov.c: Comments updated.
4838         (source_info): Add file_time field.
4839         (source_index): New variable.
4840         (mutiple_files): New variable.
4841         (generate_results): New function extracted from process_file.
4842         (process_file): Save and restore chain of functions, generate
4843         results and free structures only if not merging results.
4844         (release_structures): File names are now freed in create_file_names
4845         (create_file_names): Free previous file names.
4846         (find_source): File date is now read here and modifications in
4847         source files is checked here.
4848         (read_graph_file): Only reverse order of functions for the current
4849         object file.
4850         (make_gcov_file_name): Do not generate long names if input_name is
4851         NULL.
4852         (output_lines): If merging results do not display graph, data and
4853         runs informations.
4854         Checking source file modification is done in find_source.
4855
4856         * doc/gcov.texi: Append an s to sourcefile.
4857
4858 2007-06-12  Bernd Schmidt  <bernd.schmidt@analog.com>
4859
4860         * config/bfin/bfin.md (UNSPEC_NOP): New constant.
4861         (forced_nop): New pattern.
4862         * config/bfin/bfin.c: Include "df.h".
4863         (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
4864         (bfin_discover_loop): Use df_get_live_in instead of
4865         global_live_at_start.
4866         (bfin_reorder_loops): Pass 0 to cfg_layout_initialize.  Call
4867         df_analyze when done.
4868         (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
4869         the insns.  Use QImode for the final insn in a bundle.  Call
4870         df_insn_rescan on generated NOPs; use gen_forced_nop instead of
4871         gen_nop.
4872         (reorder_var_tracking_notes): New function.
4873         (bfin_reorg): Pass no argument to split_all_insns.  Don't call
4874         update_life_info.  Call df_analyze after scheduling and bundle
4875         generation.  Call reorder_var_tracking_notes if generating these
4876         notes.  Call df_finish_pass at the end.
4877
4878 2007-06-12  Dirk Mueller  <dmueller@suse.de>
4879
4880         * optabs.c (debug_optab_libfuncs): fix gcc_assert to
4881         a comparison, not an assignment.
4882
4883 2007-06-12  Olivier Hainque  <hainque@adacore.com>
4884
4885         * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
4886         Request walking the subtrees only, leaving the current is_lhs/val_only
4887         untouched.
4888         (convert_non_local_reference): Likewise.
4889
4890 2007-06-12  Nathan Sidwell  <nathan@codesourcery.com>
4891
4892         * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
4893
4894 2007-06-12  Richard Guenther  <rguenther@suse.de>
4895
4896         PR tree-optimization/15353
4897         PR tree-optimization/31657
4898         * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
4899         * timevar.def: Add TV_TREE_IFCOMBINE.
4900         * tree-pass.h (pass_tree_ifcombine): Declare.
4901         * tree-ssa-ifcombine.c: New file.
4902         * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
4903         * tree-flow.h (blocks_in_phiopt_order): Declare.
4904         * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
4905         (tree-ssa-ifcombine.o): New dependencies.
4906
4907 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
4908
4909         PR rtl-optimization/32293
4910         * combine.c (simplify_if_then_else): Truncate return from
4911         nonzero_bits() to correct mode.
4912
4913 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
4914
4915         * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
4916         into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
4917
4918 2007-06-11  Diego Novillo  <dnovillo@google.com>
4919
4920         * Makefile.in (reload1.o-warn): Remove.
4921
4922 2007-06-11  Seongbae Park <seongbae.park@gmail.com>
4923
4924         * combine.c (subst): Use reg_overlap_mentioned_p
4925         instead of comparing register numbers directly.
4926
4927 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
4928
4929         * reload1.c (mark_home_live_1): Use the mode parameter.
4930
4931 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
4932
4933         * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
4934         df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
4935         word "deferred".
4936         * df-core.c: Ditto.
4937
4938 2007-06-11  Daniel Berlin  <dberlin@dberlin.org>
4939
4940         * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
4941
4942 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
4943
4944         * config/i386/i386.md ("*movtf_internal): Penalize moves to and
4945         from integer registers.
4946         (FP mode splitters): Handle TFmode.
4947
4948 2007-06-11  Eric Botcazou  <ebotcazou@adacore.com>
4949
4950         * tree-ssa-structalias.c (find_what_p_points_to): Return false
4951         for ref-all pointers that point-to anything.
4952
4953 2007-06-11  Joseph Myers  <joseph@codesourcery.com>
4954
4955         * config/arm/arm.c (arm_output_dwarf_dtprel,
4956         TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
4957
4958 2007-06-11  Bernd Schmidt  <bernd.schmidt@analog.com>
4959
4960         * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
4961         movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
4962         to memory moves.
4963
4964 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
4965
4966         * gcc/tree.c (signed_or_unsigned_type_for): New.
4967         (unsigned_type_for): Use signed_or_unsigned_type_for.
4968         (signed_type_for): Use signed_or_unsigned_type_for.
4969         * gcc/tree.h (signed_or_unsigned_type_for): New.
4970         (get_signed_or_unsigned_type): Remove.
4971         * gcc/fold-const.c (fold_negate_expr): Use signed_type_for instead of
4972         lang_hooks.types.signed_type
4973         (size_diffop): Likewise.
4974         (all_ones_mask_p): Likewise.
4975         (build_range_check): Likewise.
4976         (fold_cond_expr_with_comparison): Likewise.
4977         (fold_cond_expr_with_comparison): Likewise.
4978         (unextend): Likewise.
4979         (extract_muldiv_1): Likewise.
4980         (fold_single_bit_test_into_sign_test): Likewise.
4981         (fold_binary): Likewise.
4982         (fold_ternary): Likewise.
4983         (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
4984         instead of get_signed_or_unsigned_type.
4985         * gcc/c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
4986         (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
4987         * gcc/expr.c (signed_or_unsigned_type_for): Use
4988         signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
4989         * gcc/langhooks.c (get_signed_or_unsigned_type): Remove.
4990         (lhd_signed_or_unsigned_type): Remove.
4991         * gcc/langhooks.h (lang_hooks_for_types): Remove signed_type and
4992         signed_or_unsigned_type.
4993         (lhd_signed_or_unsigned_type): Remove.
4994         * gcc/expmed.c (make_tree): Use signed_type_for instead of
4995         lang_hooks.types.signed_type.
4996         * gcc/c-common.c (same_scalar_type_ignoring_signedness): Use
4997         c_common_signed_type instead of lang_hooks.types.signed_type.
4998         (c_common_unsigned_type): New.
4999         (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
5000         (shorten_compare): Use c_common_unsigned_type instead of
5001         c_common_signed_or_unsigned_type.
5002         (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
5003         unsigned_type_for.
5004         * gcc/convert.c (convert_to_integer): Use signed_type_for instead of
5005         lang_hooks.types.signed_type.
5006         * gcc/langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
5007         (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
5008         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
5009         * gcc/c-format.c (check_format_types): Use c_common_unsigned_type
5010         instead of unsigned_type_for.
5011         * gcc/c-decl.c (groakdeclarator): Likewise.
5012         * gcc/c-typeck.c (convert_for_assignment): Likewise.
5013         * gcc/c-common.h (c_common_unsigned_type): New.
5014
5015 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
5016
5017         PR target/32280
5018         * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
5019         * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
5020
5021 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
5022
5023         PR middle-end/32279
5024         * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
5025         into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
5026
5027 2007-06-10  Jan Sjodin  <jan.sjodin@amd.com>
5028             Sebastian Pop  <sebpop@gmail.com>
5029
5030         * lambda-code.c (remove_iv): New.
5031         (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
5032
5033 2007-06-10  Zdenek Dvorak  <dvorakz@suse.cz>
5034
5035         * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
5036         * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
5037         * tree-ssa-loop-prefetch.c: Include optabs.h.
5038         (FENCE_FOLLOWING_MOVNT): New macro.
5039         (struct mem_ref): Add independent_p and storent_p fields.
5040         (record_ref): Initalize the new fields.
5041         (gather_memory_references_ref): Return true if the reference
5042         could be analysed.
5043         (gather_memory_references): Check whether all memory accesses
5044         in loop were recorded.
5045         (should_issue_prefetch_p): Return false for nontemporal stores.
5046         (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
5047         may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
5048         (determine_loop_nest_reuse): Detect independent memory references.
5049         (loop_prefetch_arrays): Call mark_nontemporal_stores.
5050         * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
5051         * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
5052         * config/i386/i386.h (x86_mfence): Declare.
5053         (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
5054         * config/i386/i386.c (x86_mfence): New variable.
5055         (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
5056
5057         * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
5058         * optabs.c (init_optabs): Initialize storent_optab.
5059         * optabs.h (enum optab_index): Add OTI_storent.
5060         (storent_optab): Declare.
5061         * genopinit.c (optabs): Add initialization for storent_optab.
5062         * tree.h (MOVE_NONTEMPORAL): New macro.
5063         * expr.c (expand_assignment, store_expr, store_constructor_field,
5064         store_constructor, store_field, expand_expr_real_1): Propagate
5065         nontemporality of the expanded store.
5066         (emit_storent_insn): New function.
5067         * expr.h (expand_assignment, store_expr): Declaration changed.
5068         * function.c (assign_parm_setup_reg): Pass false as nontemporality
5069         to expand_assignment.
5070         * stmt.c (expand_asm_expr): Ditto.
5071         * calls.c (initialize_argument_information): Pass false as
5072         nontemporality to store_expr.
5073         * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
5074         storentsi): New.
5075
5076 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
5077
5078         * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
5079         parameter, use it.
5080         (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
5081
5082 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
5083
5084         * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
5085         and allow DECL_P here.
5086
5087 2007-06-09  Zdenek Dvorak  <dvorakz@suse.cz>
5088
5089         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
5090         follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
5091         track of the size of the expression.
5092         * cfghooks.c (merge_blocks): Remove block from loops structure only
5093         after call of the merge_blocks hook.
5094
5095 2007-06-09  Tom Tromey  <tromey@redhat.com>
5096
5097         * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
5098         (deprecated_state): Removed.
5099         (start_decl): Update.
5100         (enum deprecated_states): Moved earlier.
5101         (groktypename): Update.
5102         (push_parm_decl): Likewise.
5103         (grokfield): Likewise.
5104         (start_function): Likewise.
5105
5106 2007-06-09  Ian Lance Taylor  <iant@google.com>
5107
5108         PR tree-optimization/32169
5109         * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
5110         CONVERT_EXPR, check whether min and max both converted to an
5111         overflow infinity representation.
5112
5113 2007-06-08  Eric Botcazou  <ebotcazou@adacore.com>
5114
5115         * reload1.c (fixup_abnormal_edges): Clear bb field for insns
5116         not inserted on the edge.
5117
5118 2007-06-08  Bob Wilson  <bob.wilson@acm.org>
5119
5120         * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
5121         instructions if they are supported.
5122         (__divsi3, __umodsi3, __modsi3): Likewise.
5123         (__ashldi3, __ashrdi3, __lshrdi3): New.
5124         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
5125
5126 2007-06-08  Harsha Jagasia <harsha.jagasia@amd.com>
5127             Tony Linthicum <tony.linthicum@amd.com>
5128
5129         * doc/invoke.texi: Add fvect-cost-model flag.
5130         * common.opt (fvect-cost-model): New flag.
5131         * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
5132         cost fields in stmt_vec_info struct for STMT.
5133         * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
5134         fields in stmt_vec_info struct and access functions for the same.
5135         (TARG_COND_BRANCH_COST): Define cost of conditional branch.
5136         (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
5137         load, store and vector to scalar operation.
5138         (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
5139         (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
5140         (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
5141         (TARG_VEC_STORE_COST): Define cost of vector store.
5142         (vect_estimate_min_profitable_iters): Define new function.
5143         * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
5144         check to evaluate if loop iterations are less than minimum profitable
5145         iterations determined by cost model or minimum vect loop bound defined
5146         by user, whichever is more conservative.
5147         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
5148         run-time check to evaluate if loop iterations are less than minimum
5149         profitable iterations determined by cost model or minimum vect loop
5150         bound defined by user, whichever is more conservative.
5151         (vect_estimate_min_profitable_iterations): New function to estimate
5152         mimimimum iterartions required for vector version of loop to be
5153         profitable over scalar version.
5154         (vect_model_reduction_cost): New function.
5155         (vect_model_induction_cost): New function.
5156         (vect_model_simple_cost): New function.
5157         (vect_cost_strided_group_size): New function.
5158         (vect_model_store_cost): New function.
5159         (vect_model_load_cost): New function.
5160         (vectorizable_reduction): Call vect_model_reduction_cost during
5161         analysis phase.
5162         (vectorizable_induction): Call vect_model_induction_cost during
5163         analysis phase.
5164         (vectorizable_load): Call vect_model_load_cost during analysis phase.
5165         (vectorizable_store): Call vect_model_store_cost during analysis phase.
5166         (vectorizable_call, vectorizable_assignment, vectorizable_operation,
5167         vectorizable_promotion, vectorizable_demotion): Call
5168         vect_model_simple_cost during analysis phase.
5169
5170 2007-06-08  Simon Baldwin  <simonb@google.com>
5171
5172         * reg-stack.c (get_true_reg): Readability change.  Moved default case
5173         label into direct switch statement scope.
5174
5175 2007-06-08  Simon Baldwin  <simonb@google.com>
5176
5177         * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
5178         in gcc_assert() with '==' comparison.
5179
5180 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
5181
5182         * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
5183         TARGET_ABM handling of x86_popcnt variable.
5184
5185 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
5186
5187         * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
5188         __builtin_copysignq and __builtin_infq built-in functions.
5189
5190 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
5191
5192         * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
5193         SSE4.2 section.  Correct built-in function names in SSE4A section.
5194
5195 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
5196
5197         PR tree-optimization/32243
5198         * tree-vect-transform.c (vectorizable_type_promotion): Move check
5199         for ncopies after ratio check between nunits_out and nunits_in.
5200         (vectorizable_type_demotion): Remove single-use variable "scalar_type".
5201
5202 2007-06-08  Dorit Nuzman  <dorit@il.ibm.com>
5203
5204         PR tree-optimization/32224
5205         * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
5206         vectorization upon a non GIMPLE_MODIFY_STMT.
5207
5208 2007-06-08  Christian Bruel  <christian.bruel@st.com>
5209
5210         PR target/29953
5211         * config/sh/sh.md (doloop_end): New pattern and splitter.
5212         * loop-iv.c (simple_rhs_p): Check for hardware registers.
5213
5214 2007-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
5215
5216         PR middle-end/32209
5217         * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
5218         functions.
5219         (verify_dominators): Do not change dominance tree.
5220
5221 2007-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
5222
5223         * config/sh/constraints.md: New file.
5224         * config/sh/sh.c: Include tm-constrs.h.
5225         (reg_class_from_letter): Remove.
5226         (prepare_cbranch_operands): Use satisfies_constraint_*
5227         function instead of macro.
5228         (andcosts, broken_move, sh_secondary_reload): Likewise.
5229         * config/sh/predicates.md (trapping_target_operand): Likewise.
5230         (and_operand, arith_operand, arith_reg_or_0_operand,
5231         cmp_operand, logical_operand, target_operand,
5232         ua_address_operand, ua_offset, xor_operand): Likewise.
5233         * config/sh/sh.md: Include constraints.md.
5234         (*movsicc_t_false): Use satisfies_constraint_* function
5235         instead of macro.
5236         (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
5237         lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
5238         movdi_const_16bit+1, beq, bne, *ptb): Likewise.
5239         * config/sh/sh.h (reg_class_from_letter): Remove prototype.
5240         (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
5241         (REG_CLASS_FROM_CONSTRAINT): Remove.
5242         (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
5243         CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
5244         CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
5245         CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
5246         CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
5247         (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
5248         function instead of macro.
5249         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
5250         (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
5251         EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
5252         EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
5253         (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
5254         (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
5255         (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
5256         (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
5257         (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
5258         EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
5259         EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
5260         EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
5261         EXTRA_CONSTRAINT_STR): Likewise.
5262         (GO_IF_LEGITIMATE_INDEX): Fix indentation.
5263
5264 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
5265
5266         * config/i386/darwin.h (STACK_BOUNDARY): Define.
5267
5268 2007-06-07  Simon Martin  <simartin@users.sourceforge.net>
5269
5270         PR c++/30759
5271         * c-common.h (flag_cpp0x): Replaced by...
5272         (cxx_dialect): ... this new variable specifying the C++ dialect that
5273         is used.
5274         * c-common.c (flag_cpp0x): Removed.
5275         (cxx_dialect): Defined.
5276         * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
5277         cxx_dialect.
5278         * c-opts.c (c_common_post_options): Likewise.
5279         (set_std_cxx98): Set cxx_dialect to cxx98.
5280         (set_std_cxx0x): Set cxx_dialect to cxx0x.
5281
5282 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
5283             Hui-May Chang <hm.chang@apple.com>
5284
5285         * doc/invoke.texi (Darwin Options): Update documentation for
5286         -mmacosx-version-min.
5287         * config.gcc (*-*-darwin*): Set extra_gcc_objs.
5288         * config/darwin-driver.c: New file.
5289         * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
5290         * config/t-darwin (darwin-driver.o): New rule.
5291
5292         * config/darwin-c.c (version_as_macro): Ignore low digit.
5293
5294 2007-06-07  Uros Bizjak  <ubizjak@gmail.com>
5295
5296         * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
5297         (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
5298         (CSGNMODE): New mode macro.
5299         (CSGNVMODE): New mode attribute.
5300         (copysign<mode>3): Rename from copysingsf3 and copysigndf3.  Macroize
5301         expander using CSGNMODE mode macro.  Handle TFmode.
5302         (copysign<mode>3_const): Rename from copysignsf3_const and
5303         copysigndf3_const.  Macroize pattern using CSGNMODE mode macro.
5304         Handle TFmode.
5305         (copysign<mode>3_var): Rename from copysignsf3_var and
5306         copysigndf3_var.  Macroize pattern using CSGNMODE mode macro.
5307         Handle TFmode.
5308         (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
5309         mode macro.  Handle TFmode.
5310         * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
5311         (iortf3, *iortf3): Ditto.
5312         (xortf3, *xortf3): Ditto.
5313         * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
5314         TFmode and TImode masks.
5315         (ix86_expand_copysign): Expand TFmode copysign insn.
5316         (IX86_BUILTIN_INFQ): New.
5317         (IX86_BUILTIN_FABSQ): Ditto.
5318         (IX86_BUILTIN_COPYSIGNQ): Ditto.
5319         (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
5320         [__builtin_fabsq]: Ditto.
5321         [__builtin_copysignq]: Ditto.
5322         (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
5323         [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
5324         [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
5325         ix86_expand_binop_builtin().
5326
5327 2007-06-07  Bob Wilson  <bob.wilson@acm.org>
5328
5329         * config/xtensa/lib1funcs.asm: Clean up whitespace.
5330
5331 2007-06-07  Steve Ellcey  <sje@cup.hp.com>
5332
5333         PR target/31850
5334         * rtl.h (push_to_sequence2): New.
5335         * emit-rtl.c (push_to_sequence2): New.
5336         * function.c (assign_parm_data_all): Add new fields.
5337         (assign_parm_setup_block): Call push_to_sequence2 instead of
5338         push_to_sequence.
5339         (assign_parm_setup_reg): Ditto.
5340         (assign_parm_setup_stack): Ditto.
5341         (assign_parms_unsplit_complex): Ditto.
5342         (assign_parms): Change field name.
5343
5344 2007-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
5345
5346         PR tree-optimization/32220
5347         * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
5348         phi node is reached before defining statement.
5349
5350 2007-06-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5351
5352         PR tree-opt/32231
5353         * tree-vect-transform.c (vectorizable_call): Call update_stmt
5354         after changing the right hand side of the assignment.
5355
5356 2007-06-06  Eric Christopher  <echristo@apple.com>
5357
5358         * config.gcc (i?86-*-darwin*): Remove arch parameter.
5359         (x86_64-*-darwin*): Ditto.
5360         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
5361         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
5362
5363 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
5364
5365         * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
5366         coding conventions.
5367         (add_key): Likewise.
5368         * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
5369         * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
5370         variable names.
5371         * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory
5372         macros.
5373         (add_cost_one_coalesce): Likewise.
5374         * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
5375         variable names. Rename orig to orig_name for consistency.
5376         * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the
5377         coding conventions.
5378         (cprop_into_successor_phis): Avoid using C++ keywords as variable
5379         names.
5380         (record_equivalences_from_stmt): Likewise.
5381         * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
5382         the coding conventions.
5383         (memory_ssa_name_same): Likewise.
5384         (dse_optimize_stmt): Likewise.
5385         (dse_record_phis): Likewise.
5386         (dse_finalize_block): Likewise.
5387         * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
5388         keywords as variable names.
5389         (may_move_till): Cast according to the coding conventions.
5390         (force_move_till_expr): Avoid using C++ keywords as variable names.
5391         (force_move_till): Cast according to the coding conventions.
5392         (memref_hash): Likewise.
5393         (memref_eq): Likewise.
5394         (gather_mem_refs_stmt): Likewise.
5395         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid
5396         using C++ keywords as variable names.
5397         (idx_find_step): Cast according to the coding conventions.
5398         (idx_record_use): Likewise.
5399         (find_depends): Likewise.
5400         (prepare_decl_rtl): Likewise.
5401         (mbc_entry_hash): Likewise.
5402         (mbc_entry_eq): Likewise.
5403         * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
5404         (simplify_replace_tree): Avoid using C++ keywords as variable names.
5405         (idx_infer_loop_bounds): Cast according to the coding conventions.
5406         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
5407         * tree-ssa-math-opts.c (occ_new ): Likwise.
5408         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
5409         macros.
5410         * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as
5411         variable names.
5412         (add_use_op): Likewise.
5413         (add_vop): Likewise.
5414         (add_vuse_op): Likewise.
5415         (add_vdef_op): Likewise.
5416         (get_expr_operands): Likewise.
5417         (push_stmt_changes): Use type safe memory macros.
5418         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
5419         keywords as variable names.
5420         (conditional_replacement): Likewise.
5421         (minmax_replacement): Likewise.
5422         (abs_replacement): Likewise.
5423         * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
5424         coding conventions.
5425         (insert_fake_stores): Avoid using C++ keywords as variable names.
5426         * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
5427         conventions.
5428         * tree-ssa-structalias.c (heapvar_lookup): Likewise.
5429         (heapvar_insert): Use type safe memory macros.
5430         (new_var_info): Cast according to the coding conventions.
5431         (new_constraint): Likewise.
5432         (remove_preds_and_fake_succs): Use type safe memory macros.
5433         * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
5434         conventions.
5435         (thread_single_edge): Likewise.
5436         (thread_through_loop_header): Likewise.
5437
5438 2007-06-06  Eric Christopher  <echristo@apple.com>
5439
5440         * config/i386/i386.c (override_options): Move handling
5441         of TARGET_SUBTARGET* earlier.
5442
5443 2007-06-06  Paolo Bonzini  <bonzini@gnu.org>
5444
5445         * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
5446         use %n on printf.
5447
5448 2007-06-06  Zdenek Dvorak  <dvorakz@suse.cz>
5449
5450         * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
5451         emited outside of basic block.
5452         * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
5453         the created blocks.
5454         * rtl.h (delete_insn_chain): Declaration changed.
5455         * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
5456         non-removed insns.
5457         (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
5458         (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
5459         rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
5460         to delete_insn_chain.
5461         (rtl_verify_flow_info_1): Verify that the insns in header and footer
5462         do not have bb field set.
5463         (rtl_verify_flow_info): Verify that insns between basic blocks do not
5464         have bb field set.
5465         * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
5466         * cfgcleanup.c (try_optimize_cfg): Ditto.
5467
5468 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
5469
5470         * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
5471         (lambda_body_vector_new): Use type safe memory macros.
5472         (lambda_linear_expression_new): Likewise.
5473         (lambda_loopnest_new): Likewise.
5474         (lambda_lattice_new): Likewise.
5475         (replace_uses_equiv_to_x_with_y): Cast according to the coding
5476         conventions. Use type safe memory macros.
5477         * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
5478         (lambda_body_vector_s): Likewise.
5479         * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
5480         * lambda-trans.c (lambda_trans_matrix_new): Likewise.
5481
5482 2007-06-06  Richard Guenther  <rguenther@suse.de>
5483
5484         * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
5485         if we need to schedule cfg_cleanup.
5486         (tree_ssa_forward_propagate_single_use_vars): Do so.
5487
5488 2007-06-06  Ian Lance Taylor  <iant@google.com>
5489
5490         * fold-const.c (merge_ranges): If range_successor or
5491         range_predecessor fail, just return 0.
5492
5493 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
5494
5495         PR tree-optimization/32216
5496         * tree-vectorizer.c (supportable_widening_operation): Determine
5497         signedness of FIX_TRUNC_EXPR from output operand.
5498         (supportable_narrowing_operation): Ditto.
5499         * tree-vect-generic.c (expand_vector_operations_1): Determine
5500         signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
5501         from input operand.
5502
5503 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
5504
5505         * config/i386/i386.c (enum pta_flags): Move out of struct scope...
5506         (struct pta): ...from here. Change flags to unsigned to avoid
5507         excessive casting (as it is used as a bit mask).
5508         (override_options): Add casts according to the coding convenventions.
5509         (x86_64_elf_unique_section): Likewise.
5510         (examine_argument): Avoid using C++ keywords as variable names.
5511         (construct_container): Likewise.
5512         (legitimize_pic_address): Likewise.
5513         (get_dllimport_decl): Cast according to the coding conventions. Use
5514         type safe memory macros.
5515         (legitimize_address): Cast according to the coding conventions.
5516         (emit_i387_cw_initialization): Corrected the type of slot to enum
5517         ix86_stack_slot.
5518         (ix86_init_machine_status): Use type safe memory macros.
5519         (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
5520         (bdesc_pcmpistr): Likewise.
5521         (bdesc_crc32): Likewise.
5522         (bdesc_sse_3arg): Likewise.
5523         (bdesc_2arg): Likewise.
5524         (bdesc_1arg): Likewise.
5525         (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
5526         (ix86_expand_sse_pcmpistr): Likewise.
5527         (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
5528         (ix86_builtin_vectorized_function): Change the type of fn to unsigned
5529         int to match the langhook definition.
5530         (ix86_builtin_conversion): Change the type of code to unsigned init to
5531         match the langhook definition.
5532         (ix86_preferred_reload_class): Avoid using C++ keywords as variable
5533         names.
5534         (ix86_preferred_output_reload_class): Likewise.
5535         (ix86_cannot_change_mode_class): Likewise.
5536         (ix86_memory_move_cost): Likewise.
5537         (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
5538         avoid excessive casting later on.
5539         (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
5540
5541 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
5542
5543         * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
5544         as flags setting insn.
5545         (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
5546
5547 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
5548
5549         * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
5550         (UNSPEC_ROUND): New.
5551         ("sse4_1_round<mode>2"): New insn pattern.
5552         ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
5553         SSE4.1 targets.
5554         ("floor<mode>2"): Rename from floordf2 and floorsf2.  Macroize
5555         expander using SSEMODEF mode macro.  Expand using
5556         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
5557         ("ceil<mode>2"): Rename from ceildf2 and ceilsf2.  Macroize
5558         expander using SSEMODEF mode macro.  Expand using
5559         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
5560         ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2.  Macroize
5561         expander using SSEMODEF mode macro.  Expand using
5562         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
5563         * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
5564         UNSPEC_ROUND instead of UNSPEC_ROUNDP.
5565         ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
5566         UNSPEC_ROUNDS.
5567
5568 2007-06-06  Jan Sjodin  <jan.sjodin@amd.com>
5569             Sebastian Pop  <sebpop@gmail.com>
5570
5571         * lambda.h (build_linear_expr): New.
5572         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
5573         Use build_linear_expr, call fold and force_gimple_operand.
5574         (lambda_loopnest_to_gcc_loopnest): Check that there is
5575         something to insert.
5576         * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
5577
5578 2007-06-05  Joerg Wunsch  <j.gnu@uriah.heep.sax.de>
5579
5580         PR preprocessor/23479
5581         * doc/extend.texi: Document the 0b-prefixed binary integer
5582         constant extension.
5583
5584 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
5585
5586         PR tree-optimization/32215
5587         * tree-vectorizer.c (supportable_widening_operation): Return false
5588         for unsupported FIX_TRUNC_EXPR tree code.
5589         (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
5590
5591 2007-06-06  Nathan Froyd  <froydnj@codesourcery.com>
5592
5593         * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
5594         register on SPE targets.  Change documentation to reflect
5595         reality.
5596         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
5597         Change FIXED_SCRATCH to 14 and document why we're keeping r14
5598         out of the register allocation pool.
5599         (rs6000_reg_live_or_pic_offset_p): New function.
5600         (rs6000_emit_prologue): Move the actual saving of LR up to free
5601         r0 for holding r11.  Split saving of SPE 64-bit registers into
5602         its own case.  Ensure that offsets will always be in-range for
5603         'evstdd' by using r11 as a scratch register to point at the start
5604         of the SPE save area.  Save r11 if necessary, as it is the static
5605         chain register.
5606         (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
5607         into its own case.  Ensure that offsets will always be in-range
5608         for 'evldd' by using r11 as a scratch register to point at the
5609         start of the SPE save area.  Also adjust r11 when restoring
5610         the stack pointer to compensate for pre-loading r11.
5611
5612 2007-06-05  Thomas Neumann  <tneumann@users.sourceforge.net>
5613
5614         * cfg.c (init_flow): Use type safe memory macros.
5615         (alloc_block): Likewise.
5616         (unchecked_make_edge): Likewise.
5617         (dump_flow_info): Avoid using C++ keywords as variable names.
5618         (copy_original_table_clear): Cast according to the coding conventions.
5619         (copy_original_table_set): Likewise.
5620         * cfgexpand (label_rtx_for_bb): Likewise.
5621         (expand_gimple_basic_block): Likewise.
5622         * cfghooks.c (dump_bb): Likewise.
5623         (lv_adjust_loop_header_phi): Avoid using C++ keywords as
5624         variable names.
5625         (lv_add_condition_to_bb): Likewise.
5626         * cfglayout (relink_block_chain): Cast according to the coding
5627         conventions.
5628         (fixup_reorder_chain): Likewise.
5629         (fixup_fallthru_exit_predecessor): Likewise.
5630         * cfgloop.c (glb_enum_p): Likewise.
5631         (get_exit_description): Likewise.
5632         (dump_recorded_exit): Likewise.
5633         * cfgloop.h (enum loop_estimation): Move out of struct scope...
5634         (struct loop): ... from here.
5635         * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
5636         conventions.
5637         * cfgrtl.c (rtl_create_basic_block): Likewise.
5638         (rtl_split_block): Likewise.
5639         (rtl_dump_bb): Likewise.
5640         (cfg_layout_split_block): Likewise.
5641         (init_rtl_bb_info): Use typesafe memory macros.
5642
5643         * graphds.h (struct graph_edge): Renamed edge to graph_edge.
5644         * graphds.h: Updated all usages of edge to graph_edge.
5645         * graphds.c: Likewise.
5646         * cfgloopanal.c: Likewise.
5647
5648 2007-06-05  Ian Lance Taylor  <iant@google.com>
5649
5650         * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
5651         PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
5652         (extract_range_from_assert): Set TREE_NO_WARNING when creating an
5653         expression.
5654         (test_for_singularity): Likewise.
5655
5656 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
5657
5658         * config/i386/constraints.md ("Y2"): Replaced by ...
5659         ("Yt"): This.
5660         * config/i386/i386.md: Likewise.
5661         * config/i386/mmx.md: Likewise.
5662         * config/i386/sse.md: Likewise.
5663
5664 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
5665
5666         * config/i386/constraints.md ("z"): Replaced by ...
5667         ("Y0"): This.
5668         * config/i386/sse.md (sse4_1_blendvpd): Likewise.
5669         (sse4_1_blendvps): Likewise.
5670         (sse4_1_pblendvb): Likewise.
5671         (sse4_2_pcmpestr): Likewise.
5672         (sse4_2_pcmpestrm): Likewise.
5673         (sse4_2_pcmpestr_cconly): Likewise.
5674         (sse4_2_pcmpistr): Likewise.
5675         (sse4_2_pcmpistrm): Likewise.
5676         (sse4_2_pcmpistr_cconly): Likewise.
5677
5678 2007-06-05  Razya Ladelsky  <razya@il.ibm.com>
5679
5680         * matrix-reorg.c (transform_access_sites): Fix computation.
5681         (transform_allocation_sites): Same.
5682
5683 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
5684
5685         * config/i386/i386.c (override_options): Use
5686         TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
5687
5688 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
5689
5690         * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
5691         (nonimm_not_xmm0_operand): Ditto.
5692         * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
5693         as operand[0] and operand[1] predicate.  Use "nonimm_not_xmm0_operand"
5694         as operand[2] predicate.  Require "z" class XMM register for
5695         operand[3].  Adjust asm template.
5696         ("sse4_1_blendvpd"): Ditto.
5697         ("sse4_1_pblendvb"): Ditto.
5698         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
5699         force op2 into xmm0 register for variable blend instructions.
5700
5701 2007-06-04  Tom Tromey  <tromey@redhat.com>
5702
5703         * c-tree.h (start_enum): Update.
5704         (build_enumerator): Likewise.
5705         * c-decl.c (enum_next_value): Removed.
5706         (enum_overflow): Likewise.
5707         (start_enum): Add c_enum_contents argument.  Don't use globals.
5708         (build_enumerator): Likewise.
5709         * c-tree.h (struct c_enum_contents): New struct.
5710
5711 2007-06-04  Tom Tromey  <tromey@redhat.com>
5712
5713         * c-common.c (c_common_get_alias_set): Fix indentation.
5714
5715 2007-06-04  Ian Lance Taylor  <iant@google.com>
5716
5717         * tree-vrp.c (adjust_range_with_scev): When loop is not expected
5718         to overflow, reduce overflow infinity to regular infinity.
5719         (vrp_var_may_overflow): New static function.
5720         (vrp_visit_phi_node): Check vrp_var_may_overflow.
5721
5722 2007-06-04  Kazu Hirata  <kazu@codesourcery.com>
5723
5724         * stor-layout.c (layout_type): Remove duplicate code.
5725
5726 2007-06-04  Uros Bizjak  <ubizjak@gmail.com>
5727
5728         PR c/32191
5729         * gcc/c-common.c (c_define_builtins): Call targetm.init_builtins ()
5730         before build_common_builtin_nodes ().
5731
5732 2007-06-04  Steve Ellcey  <sje@cup.hp.com>
5733
5734         PR target/31733
5735         * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
5736
5737 2007-06-04  Jan Hubicka  <jh@suse.cz>
5738
5739         * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
5740         reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
5741         instead of _stat version.
5742
5743 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
5744
5745         PR tree-optimization/32194
5746         * tree-predcom.c (determine_offset): Check that both references have
5747         the same type.
5748
5749 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
5750
5751         * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
5752         Change dom_bbs to vector.  Add argument to iterate_fix_dominators call.
5753         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
5754         * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
5755         Add argument to iterate_fix_dominators call.
5756         (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
5757         * gcse.c (hoist_code): Change domby to vector.
5758         * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
5759         Add argument to iterate_fix_dominators call.
5760         * loop-doloop.c (doloop_modify): Changed recount_dominator to
5761         recompute_dominator.
5762         * lambda-code.c (perfect_nestify): Ditto.
5763         * cfgloopanal.c: Include graphds.h.
5764         (struct edge, struct vertex, struct graph, dump_graph, new_graph,
5765         add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
5766         (mark_irreducible_loops): Use graphds_scc.  Remove argument from
5767         add_edge call.
5768         * graphds.c: New file.
5769         * graphds.h: New file.
5770         * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
5771         (get_dominated_by, get_dominated_by_region): Change return type to
5772         vector.
5773         (verify_dominators): Recompute all dominators and compare the results.
5774         (recount_dominator): Renamed to ...
5775         (recompute_dominator): ... this.  Do not check that the block is
5776         dominated by entry.
5777         (iterate_fix_dominators): Reimplemented.
5778         (prune_bbs_to_update_dominators, root_of_dom_tree,
5779         determine_dominators_for_sons): New functions.
5780         * et-forest.c (et_root): New function.
5781         * et-forest.h (et_root): Declare.
5782         * Makefile.in (graphds.o): Add.
5783         (cfgloopanal.o): Add graphds.h dependency.
5784         (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
5785         * basic-block.h (get_dominated_by, get_dominated_by_region,
5786         iterate_fix_dominators): Declaration changed.
5787         (recount_dominator): Renamed to ...
5788         (recompute_dominator): ... this.
5789         * tree-ssa-threadupdate.c (thread_block): Free dominance info.
5790         (thread_through_all_blocks): Do not free dominance info.
5791
5792 2007-06-03  Andreas Schwab  <schwab@suse.de>
5793
5794         * config/m68k/m68k.c (override_options): Don't override
5795         REAL_MODE_FORMAT.
5796         * config/m68k/m68k-modes.def (SF, DF): Define to use
5797         motorola_single_format and motorola_double_format, resp.
5798         * real.c (motorola_single_format): Renamed from
5799         coldfire_single_format.
5800         (motorola_double_format): Renamed from coldfire_double_format.
5801         (encode_ieee_extended): Generate a proper canonical NaN image
5802         respecting canonical_nan_lsbs_set.
5803         (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
5804         true.
5805         * real.h: Adjust declarations.
5806
5807 2007-06-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5808
5809         PR target/32163
5810         * config/sh/sh.md (symGOT_load): Don't schedule insns when
5811         the symbol is generated with the stack protector.
5812
5813 2007-06-03  Kazu Hirata  <kazu@codesourcery.com>
5814
5815         * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
5816         (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
5817         "interrupt".
5818         * doc/extend.texi (interrupt): Mention m68k.
5819
5820 2007-06-02  Uros Bizjak  <ubizjak@gmail.com>
5821
5822         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
5823         safe_vector_operand() if input operand is VECTOR_MODE_P operand.
5824         (ix86_expand_sse_pcmpestr): Do not check operands for
5825         "register_operand", when insn operand predicate is "register_operand".
5826         (ix86_expand_sse_pcmpistr): Ditto.
5827
5828 2007-06-02  H.J. Lu  <hongjiu.lu@intel.com>
5829             Uros Bizjak  <ubizjak@gmail.com>
5830
5831         * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
5832         (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
5833         (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
5834         (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
5835         * config/i386/constraints.md ("z"): New register constraint
5836         for members of SSE_FIRST_REG class.
5837         * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
5838         * config/i386/i386.c (regclass_map): Change class of %xmm0 to
5839         SSE_FIRST_REG class.
5840         (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
5841         (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
5842         (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
5843         (IX86_BUILTIN_PCMPESTRM128): Likewise.
5844         (IX86_BUILTIN_PCMPESTRA128): Likewise.
5845         (IX86_BUILTIN_PCMPESTRC128): Likewise.
5846         (IX86_BUILTIN_PCMPESTRO128): Likewise.
5847         (IX86_BUILTIN_PCMPESTRS128): Likewise.
5848         (IX86_BUILTIN_PCMPESTRZ128): Likewise.
5849         (IX86_BUILTIN_PCMPISTRI128): Likewise.
5850         (IX86_BUILTIN_PCMPISTRM128): Likewise.
5851         (IX86_BUILTIN_PCMPISTRA128): Likewise.
5852         (IX86_BUILTIN_PCMPISTRC128): Likewise.
5853         (IX86_BUILTIN_PCMPISTRO128): Likewise.
5854         (IX86_BUILTIN_PCMPISTRS128): Likewise.
5855         (IX86_BUILTIN_PCMPISTRZ128): Likewise.
5856         (struct builtin_description): Change "flag" field to unsigned.
5857         (bdesc_pcmpestr): New builtin description table.
5858         (bdesc_pcmpistr): Likewise.
5859         (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
5860         v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
5861         Initialize pcmp[ei]str[im] insns for SSE4.2.
5862         (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
5863         (ix86_expand_sse_pcmpistr): Likewise.
5864         (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
5865         * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
5866         (UNSPEC_PCMPISTR): Likewise.
5867         * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
5868         (sse4_2_pcmpestri):New isns pattern.
5869         (sse4_2_pcmpestrm): Likewise.
5870         (sse4_2_pcmpestr_cconly): Likewise.
5871         (sse4_2_pcmpistr): New insn patern and splitter.
5872         (sse4_2_pcmpistri):New isns pattern.
5873         (sse4_2_pcmpistrm): Likewise.
5874         (sse4_2_pcmpistr_cconly): Likewise.
5875         * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
5876         in SSE4.2.
5877
5878 2007-06-01  David Daney  <ddaney@avtrex.com>
5879
5880         * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
5881         LOADGP_ABSOLUTE and not binds_local_p.
5882
5883 2007-06-01  Geoffrey Keating  <geoffk@apple.com>
5884
5885         * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
5886
5887 2007-06-01  Ian Lance Taylor  <iant@google.com>
5888
5889         * tree-vrp.c (compare_name_with_value): Always set
5890         used_strict_overflow if we get a result from the variable itself.
5891
5892 2007-06-01  Ian Lance Taylor  <iant@google.com>
5893
5894         PR rtl-optimization/31455
5895         * lower-subreg.c (find_decomposable_subregs): Don't decompose
5896         subregs which have a cast between modes which are not tieable.
5897
5898 2007-06-01  Uros Bizjak  <ubizjak@gmail.com>
5899
5900         * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
5901         breaks after return statements.
5902
5903 2007-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
5904
5905         * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
5906         only after no_new_pseudos.
5907
5908 2007-05-31  Eric Christopher  <echristo@apple.com>
5909
5910         * expr.c (convert_move): Assert that we don't have a BLKmode
5911         operand.
5912         (store_expr): Handle BLKmode moves by calling emit_block_move.
5913
5914 2007-05-31  Daniel Berlin  <dberlin@dberlin.org>
5915
5916         * c-typeck.c (build_indirect_ref): Include type in error message.
5917         (build_binary_op): Pass types to binary_op_error.
5918         * c-common.c (binary_op_error): Take two type arguments, print out
5919         types with error.
5920         * c-common.h (binary_op_error): Update prototype.
5921
5922 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
5923
5924         * config/i386/i386.c: Correct coments on -mno-sse4.
5925
5926 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
5927
5928         * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
5929         (x86_64-*-*): Likewise.
5930         * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
5931         (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
5932         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
5933         (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
5934         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
5935         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
5936         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
5937         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
5938         (OPTION_MASK_ISA_SSE4): Likewise.
5939         (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
5940         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
5941         (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET.  Handle SSE4.2.
5942         (override_options): Support SSE4.2.
5943         (ix86_build_const_vector): Support SImode and DImode.
5944         (ix86_build_signbit_mask): Likewise.
5945         (ix86_expand_int_vcond): Support V2DImode.
5946         (IX86_BUILTIN_CRC32QI): New for SSE4.2.
5947         (IX86_BUILTIN_CRC32HI): Likewise.
5948         (IX86_BUILTIN_CRC32SI): Likewise.
5949         (IX86_BUILTIN_CRC32DI): Likewise.
5950         (IX86_BUILTIN_PCMPGTQ): Likewise.
5951         (bdesc_crc32): Likewise.
5952         (bdesc_sse_3arg): Likewise.
5953         (ix86_expand_crc32): Likewise.
5954         (ix86_init_mmx_sse_builtins): Support SSE4.2.
5955         (ix86_expand_builtin): Likewise.
5956         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
5957         __SSE4_2__ for -msse4.2.
5958         * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
5959         (CRC32MODE): Likewise.
5960         (crc32modesuffix): Likewise.
5961         (crc32modeconstraint): Likewise.
5962         (sse4_2_crc32<mode>): Likewise.
5963         (sse4_2_crc32di): Likewise.
5964         * config/i386/i386.opt (msse4.2): New for SSE4.2.
5965         (msse4): Likewise.
5966         * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
5967         * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
5968         * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
5969         (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
5970         (vcondu<mode>): Likewise.
5971         * doc/extend.texi: Document SSE4.2 built-in functions.
5972         * doc/invoke.texi: Document -msse4.2/-msse4.
5973
5974 2007-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
5975
5976         PR tree-optimization/32160
5977         * tree-predcom.c (predcom_tmp_var): New function.  Mark created
5978         variable as gimple reg.
5979         (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
5980
5981 2007-05-31  Kazu Hirata  <kazu@codesourcery.com>
5982
5983         * gcc.c (main): Don't consider linker options when issuing the
5984         warning about a linker input file not being used.
5985
5986 2007-05-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5987
5988         * tree-vrp.c (compare_names): Initialize sop.
5989
5990 2007-05-30  Dirk Mueller  <dmueller@suse.de>
5991
5992         * cgraphunit.c (cgraph_analyze_function): Remove
5993         computation of inline parameters.
5994
5995 2007-05-30  Uros Bizjak  <ubizjak@gmail.com>
5996
5997         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
5998
5999 2007-05-30  Richard Sandiford  <richard@codesourcery.com>
6000
6001         * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
6002         Add vx-common.h.  Include vxworks.h between vx-common.h and
6003         arm/vxworks.h.
6004         * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
6005         redefining.
6006         * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
6007         (TARGET_ASM_DESTRUCTOR): Likewise.
6008         * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
6009         instead of arm_is_xscale.  Use VXWORKS_OS_CPP_BUILTINS.
6010         (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
6011         (CC1_SPEC): Add -tstrongarm.  Line up backslashes.
6012         (VXWORKS_ENDIAN_SPEC): Define.
6013         (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
6014         (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
6015         VXWORKS_* equivalents.
6016         (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
6017         (ASM_FILE_START): Delete.
6018         (TARGET_VERSION): Reformat.
6019         (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
6020         (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
6021         * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
6022         (FPBIT, DPBIT): Define.
6023         (fp-bit.c, dp-bit.c): New rules.
6024         (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
6025         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
6026         * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
6027         * config/arm/arm.h: Include vxworks-dummy.h.
6028         * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
6029         Mark with ATTRIBUTE_UNUSED.
6030         (arm_override_options): Do not allow VxWorks RTP PIC to be used
6031         for Thumb.  Force r9 to be the PIC register for VxWorks RTPs and
6032         make it incompatible with -msingle-pic-base.
6033         (arm_function_ok_for_sibcall): Return false for calls that might
6034         go through a VxWorks PIC PLT entry.
6035         (require_pic_register): New function, split out from...
6036         (legitimize_pic_address): ...here.  Do not use GOTOFF accesses
6037         for VxWorks RTPs.
6038         (arm_load_pic_register): Handle the VxWorks RTP initialization
6039         sequence.  Use pic_reg as a shorthand for cfun->machine->pic_reg.
6040         (arm_emit_call_insn): New function.
6041         (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
6042         * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
6043         (pic_offset_arm): New pattern.
6044         (call, call_value): Use arm_emit_call_insn.
6045         (call_internal, call_value_internal): New expanders.
6046         * config/arm/lib1funcs.asm (__PLT__): Define to empty for
6047         VxWorks unless __PIC__.
6048
6049 2007-05-30  Eric Christopher  <echristo@gmail.com>
6050
6051         * genrecog.c: Include regs.h in generated file.
6052         * genemit.c: Ditto. Fix up formatting.
6053         * config/mn10300/constraints.md: New.
6054         * config/mn10300/mn10300.md: Include.
6055         * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
6056         Fix up for removed macro.
6057         * config/mn10300/predicates.md (call_address_operand):  Ditto.
6058         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
6059         (CONST_OK_FOR_I): Ditto.
6060         (CONST_OK_FOR_J): Ditto.
6061         (CONST_OK_FOR_K): Ditto.
6062         (CONST_OK_FOR_L): Ditto.
6063         (CONST_OK_FOR_M): Ditto.
6064         (CONST_OK_FOR_N): Ditto.
6065         (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
6066         (OK_FOR_Q): Ditto.
6067         (OK_FOR_R): Ditto.
6068         (OK_FOR_T): Ditto.
6069         (EXTRA_CONSTRAINT): Ditto.
6070
6071 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
6072
6073         * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
6074         Remove defines.
6075         * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
6076         OPTION_MASK_ISA_64BIT.
6077         * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
6078
6079 2007-05-30  Richard Guenther  <rguenther@suse.de>
6080
6081         PR middle-end/32152
6082         * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
6083         types for comparison.
6084         * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
6085         with original typed arguments.
6086         * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
6087
6088 2007-05-30  Jakub Jelinek  <jakub@redhat.com>
6089
6090         PR tree-optimization/31769
6091         * except.c (duplicate_eh_regions): Clear prev_try if
6092         ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
6093
6094 2007-05-30  Zdenek Dvorak  <dvorakz@suse.cz>
6095
6096         * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
6097         * tree-ssa-sink.c (statement_sink_location): Return basic block and
6098         bsi of the location where statements should be inserted.
6099         (sink_code_in_bb): Take bsi from statement_sink_location.
6100         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
6101         instead of bsi_start.
6102         * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
6103         bsi_insert_after.
6104         * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
6105         (bsi_move_before): Document inconsistency with bsi_move_after.
6106         (tree_redirect_edge_and_branch): Do not create labels if not necessary.
6107
6108 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
6109
6110         * config/i386/i386.h (TARGET_ABM): New define.
6111         (TARGET_POPCNT): Ditto.
6112         (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
6113         New temporary defines to redefine from OPTION_ISA_* defines.
6114         (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
6115         New temporary defines to redefine from OPTION_MASK_ISA_* defines.
6116         (ix86_isa_flags): New extern int declaration.
6117         (TARGET_SUBTARGET_DEFAULT): New define.
6118         (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
6119         (TARGET_SUBTARGET32_DEFAULT): Ditto.
6120         (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
6121         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
6122         * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
6123         * config/i386/darwin.h: Change TARGET_64BIT define to
6124         OPTION_ISA_64BIT.
6125
6126         * config/i386/i386.opt (m3dnowa): Define as undocumented option
6127         using existing "ix86_isa_flags" varible.
6128         (m32, m64): Use existing "ix86_isa_flags" variable.
6129         (mmmx, m3dnow): Ditto.
6130         (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
6131         (mabm): Define as non-negative option using "x86_abm" variable.
6132         (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
6133
6134         * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
6135         Rewrite feature test bitmap.
6136         (ix86_isa_flags): New initialized global int varible.
6137         (ix86_isa_flags_explicit): New static int variable.
6138         (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
6139         msse, msse2, msse3, msse4.1 and msse4a option is processed.  Change
6140         i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
6141         target_flags_explicit.
6142         (override_options): Remove "target_enable" and "target_disable" fields
6143         from "struct ptt". Update processor_target_table accordingly. Remove
6144         PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
6145         defined and rearrange PTA_* bits.  Use "ix86_isa_flags" instead of
6146         "target_flags" and "ix86_isa_flags_explicit" instead of
6147         "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
6148         MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*.  Set "x86_abm" to true when
6149         PTA_ABM is set in processor_alias_table flags entry.  Set "x86_popcnt"
6150         to true when either of PTA_POPCNT or PTA_ABM is set in
6151         processor_alias_table flags entry.  Set "x86_prefetch_sse" to true
6152         when either of PTA_PREFETCH_SSE or PTA_SSE is set in
6153         processor_alias_table flags entry.  Remove handling of
6154         "target_enable" and "target_disable" fields of processor_target_table.
6155         Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
6156         targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
6157         Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
6158         targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
6159         (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
6160         "target_flags".
6161         (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
6162
6163 2007-05-29  David Daney  <ddaney@avtrex.com>
6164
6165         PR gcc/31975
6166         * config/mips/mips.c (mips_output_mi_thunk): Emit
6167         NOTE_INSN_PROLOGUE_END at beginning of the thunk.
6168
6169 2007-05-29  Hui-May Chang  <hm.chang@apple.com>
6170         * config/i386/i386.c (ix86_function_regparm): Added checking of
6171         ix86_force_align_arg_pointer to determine the number of
6172         register parameters.
6173
6174 2007-05-29  Zdenek Dvorak  <dvorakz@suse.cz>
6175
6176         * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
6177         (SET_DR_MISALIGNMENT): New.
6178         * tree-vect-analyze.c (vect_compute_data_ref_alignment,
6179         vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
6180         Use SET_DR_MISALIGNMENT.
6181         * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
6182         pointer.
6183         * tree-data-ref.c (create_data_ref, compute_all_dependences,
6184         find_loop_nest): Export.
6185         * tree-data-ref.h (struct data_reference): Change aux field to pointer.
6186         (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
6187         * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
6188         (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
6189         New macros.
6190         (struct mem_ref): Add field reuse_distance.
6191         (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
6192         Initialize reuse_distance field.
6193         (issue_prefetch_ref): Select temporality of prefetch according to
6194         reuse_distance.
6195         (volume_of_references, volume_of_dist_vector, add_subscript_strides,
6196         self_reuse_distance, determine_loop_nest_reuse): New functions.
6197         (loop_prefetch_arrays): Call determine_loop_nest_reuse.
6198         (tree_ssa_prefetch_arrays): Dump L2 cache size.
6199         * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
6200         dependency.
6201
6202 2007-05-29  Daniel Berlin  <dberlin@dberlin.org>
6203
6204         * tree-ssa-alias.c: Add aliasing overview.
6205
6206 2007-05-29  Zuxy Meng  <zuxy.meng@gmail.com>
6207             Danny Smith  <dannysmith@users.sourceforge.net>
6208
6209         PR target/29498
6210         * config/i386/t-crtfm: Compile crtfastmath.o with
6211         -minline-all-stringops.
6212         * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
6213         * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
6214
6215 2007-05-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6216
6217         * doc/md.texi: Document constraints on HP PA-RISC.
6218
6219         * pa/constraints.md: New file.
6220         * pa.md: Include constraints.md.
6221         * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
6222         (integer_store_memory_operand, ldil_cint_p): New functions.
6223         * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
6224         * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
6225         IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
6226         * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
6227         * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
6228
6229 2007-05-28  Andrew Pinski  <Andrew_pinski@playstation.sony.com>
6230
6231         PR c/31339
6232         * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
6233         case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
6234         case POSTDECREMENT_EXPR>): Return the error_mark_node
6235         if either the real or imaginary parts would an
6236         error_mark_node.
6237
6238 2007-05-28  Daniel Berlin  <dberlin@dberlin.org>
6239
6240         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
6241         name when we remove it from a call.
6242
6243 2007-05-28  Kazu Hirata  <kazu@codesourcery.com>
6244
6245         * targhooks.c (default_narrow_bitfield): Remove.
6246         * targhooks.h: Remove the prototype for
6247         default_narrow_bitfield.
6248
6249         * langhooks-def.h: Remove the prototype for
6250         hook_get_alias_set_0.
6251         * langhooks.c (hook_get_alias_set_0): Remove.
6252
6253         * global.c (EXECUTE_IF_CONFLICT): Remove.
6254
6255 2007-05-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6256
6257         PR tree-opt/32100
6258         * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
6259         return true when truth_value_p is true and the type
6260         is of signed:1.
6261
6262 2007-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
6263
6264         * doc/install.texi (Prerequisites): We no longer require Autoconf
6265         2.13 for the top-level.
6266
6267 2007-05-28  Uros Bizjak  <ubizjak@gmail.com>
6268
6269         * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
6270         memory access via x86_expand_vector_move_misalign() only for
6271         TImode values on 32-bit targets.
6272
6273 2007-05-28  Razya Ladelsky  <razya@il.ibm.com>
6274
6275         * matrix-reorg.c: New file. Implement matrix flattening and
6276         transposing optimization.
6277         * tree-pass.h: Add matrix reorg pass.
6278         * common.opt: Add fipa-mreorg flag.
6279         * Makefile.in: Add matrix-reorg.c.
6280         * passes.c: Add matrix reorg pass.
6281         * varpool.c (add_new_static_var): New function.
6282         * cgraph.h (add_new_static_var): Declare.
6283
6284 2007-05-27  Eric Christopher  <echristo@apple.com>
6285
6286         * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
6287         sp_offset depending on stack size. Save r12 depending
6288         on registers we're saving later.
6289         (rs6000_emit_epilogue): Update sp_offset depending only
6290         on stack size.
6291
6292 2007-05-27  Zdenek Dvorak  <dvorakz@suse.cz>
6293
6294         * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
6295         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
6296         * ifcvt.c (if_convert): Ditto.
6297         * tree-ssa-threadupdate.c (thread_block): Ditto.
6298         (thread_through_all_blocks): Ditto.  Assert that loops were analysed.
6299         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
6300         verify_loop_closed_ssa): Check number_of_loops instead of
6301         current_loops.
6302         * predict.c (tree_estimate_probability): Ditto.
6303         * tree-if-conv.c (main_tree_if_conversion): Ditto.
6304         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
6305         * modulo-sched.c (sms_schedule): Ditto.
6306         * tree-scalar-evolution.c (scev_const_prop): Ditto.
6307         (scev_finalize): Do not do anything if scev analysis was not
6308         initialized.
6309         * cfgloopanal.c (mark_irreducible_loops): Do not check whether
6310         current_loops == NULL.
6311         (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
6312         * loop-init.c (loop_optimizer_init): Do not free current_loops when
6313         there are no loops.
6314         (loop_optimizer_finalize): Assert that loops were analyzed.
6315         (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
6316         rtl_doloop): Check number_of_loops instead of current_loops.
6317         * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
6318         current_loops == NULL.
6319         (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
6320         gate_tree_vectorize tree_linear_transform, check_data_deps,
6321         tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
6322         tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
6323         Check number_of_loops instead of current_loops.
6324         (tree_ssa_loop_done): Do not check whether current_loops == NULL.
6325         * tree-ssa-pre.c (fini_pre): Do not take do_fre argument.  Always
6326         free loops if available.
6327         (execute_pre): Do not pass do_fre to fini_pre.
6328
6329 2007-05-27  Tobias Burnus  <burnus@net-b.de>
6330
6331         PR middle-end/32083
6332         * real.c (mpfr_from_real): Fix sign of -Inf.
6333
6334 2007-05-27  H.J. Lu  <hongjiu.lu@intel.com>
6335
6336         * tree-vect-transform.c (vectorizable_conversion): Initialize
6337         tree_code variables to ERROR_MARK.
6338         (vectorizable_type_demotion): Likewise.
6339         (vectorizable_type_promotion): Likewise.
6340
6341 2007-05-26  Uros Bizjak  <ubizjak@gmail.com>
6342
6343         PR target/32065
6344         * config/i386/i386.md (movti): Handle push operands via
6345         ix86_expand_push().
6346
6347 2007-05-26  Kazu Hirata  <kazu@codesourcery.com>
6348
6349         * basic-block.h: Remove the prototype for merge_seq_blocks.
6350         * cfgcleanup.c (merge_seq_blocks): Remove.
6351
6352         * tree-flow.h: Remove the prototype for is_aliased_with.
6353         * tree-ssa-alias.c (is_aliased_with): Remove.
6354
6355 2007-05-26  H.J. Lu  <hongjiu.lu@intel.com>
6356
6357         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
6358
6359         * config/i386/i386.c (ix86_expand_sse4_unpack): New.
6360
6361         * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
6362         ix86_expand_sse4_unpack if SSE4.1 is enabled.
6363         (vec_unpacks_hi_v16qi): Likewise.
6364         (vec_unpacku_lo_v16qi): Likewise.
6365         (vec_unpacks_lo_v16qi): Likewise.
6366         (vec_unpacku_hi_v8hi): Likewise.
6367         (vec_unpacks_hi_v8hi): Likewise.
6368         (vec_unpacku_lo_v8hi): Likewise.
6369         (vec_unpacks_lo_v8hi): Likewise.
6370         (vec_unpacku_hi_v4si): Likewise.
6371         (vec_unpacks_hi_v4si): Likewise.
6372         (vec_unpacku_lo_v4si): Likewise.
6373         (vec_unpacks_lo_v4si): Likewise.
6374
6375 2007-05-26  Kazu Hirata  <kazu@codesourcery.com>
6376
6377         * c-typeck.c, config/arm/arm.c, config/darwin.c,
6378         config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
6379         omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
6380         follow spelling conventions in various
6381         warning/error/diagnostic messages.
6382
6383         * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
6384         df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
6385         fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
6386         tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
6387         tree-vrp.c: Fix comment typos.  Follow spelling conventions.
6388         * doc/tm.texi: Follow spelling conventions.
6389
6390 2007-05-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6391
6392         PR tree-opt/32090
6393         * tree-ssa-forwprop.c
6394         (forward_propagate_addr_into_variable_array_index): Remove
6395         the lhs argument.  Use the type of def_rhs instead of lhs.
6396         (forward_propagate_addr_expr_1): Update use of
6397         forward_propagate_addr_into_variable_array_index.
6398
6399 2007-05-25  Sandra Loosemore  <sandra@codesourcery.com>
6400             Nigel Stephens  <nigel@mips.com>
6401
6402         * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
6403         function attributes, "far" being an alias for "long_call".
6404         (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
6405         (mips_near_type_p, mips_far_type_p): New.
6406         (mips_comp_type_attributes): New function to check that attributes
6407         attached to a function type are compatible.
6408         (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
6409         TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
6410         to the target function of the thunk.
6411         (mips_encode_section_info): Check for "near" and "far" function
6412         attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
6413
6414         * config/mips/predicates.md (const_call_insn_operand): Test only
6415         SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
6416
6417         * doc/extend.texi (Function Attributes): Document MIPS "near" and
6418         "far" attributes.
6419
6420         * testsuite/gcc.target/mips/near-far-1.c:  New test case.
6421         * testsuite/gcc.target/mips/near-far-2.c:  New test case.
6422         * testsuite/gcc.target/mips/near-far-3.c:  New test case.
6423         * testsuite/gcc.target/mips/near-far-4.c:  New test case.
6424
6425 2007-05-25  Eric Christopher  <echristo@apple.com>
6426
6427         * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
6428         to x86-darwin configurations.
6429         * config/i386/t-darwin: Add softfp support.
6430         * config/i386/t-darwin64: Ditto.
6431         * config/i386/sfp-machine.h: If mach then don't use
6432         aliasing, emit a stub to call.
6433
6434 2007-05-25  Kazu Hirata  <kazu@codesourcery.com>
6435
6436         * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
6437         haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
6438         tree-predcom.c, tree-ssa-alias-warnings.c,
6439         tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
6440         comment typos.  Follow spelling conventions.
6441         * doc/cpp.texi, doc/invoke.texi: Fix typos.
6442
6443 2007-05-26  Uros Bizjak  <ubizjak@gmail.com>
6444
6445         PR target/32065
6446         * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
6447         constants into memory.  Expand unaligned memory references for
6448         SSE modes via x86_expand_vector_move_misalign() function.
6449
6450 2007-05-25  Uros Bizjak  <ubizjak@gmail.com>
6451
6452         * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
6453         "memory" attribute for "sseishft" type insn without operands[2].
6454
6455 2007-05-25  Dirk Mueller  <dmueller@suse.de>
6456             Marcus Meissner <meissner@suse.de>
6457
6458         * doc/extend.texi (alloc_size): New attribute.
6459         * c-common.c (handle_alloc_size_attribute): New.
6460         * tree-object-size.c (alloc_object_size): Use alloc_size
6461         attribute, if available.
6462
6463 2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
6464
6465         * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
6466         with MASK_SSE2.
6467         (__builtin_ia32_vec_ext_v2di): Likewise.
6468         (__builtin_ia32_vec_ext_v4si): Likewise.
6469         (__builtin_ia32_vec_ext_v8hi): Likewise.
6470         (__builtin_ia32_vec_ext_v16qi): Likewise.
6471         (__builtin_ia32_vec_set_v8hi): Likewise.
6472
6473 2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
6474
6475         * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
6476
6477 2007-05-25  Richard Sandiford  <richard@codesourcery.com>
6478
6479         * config/arm/arm-protos.h (arm_encode_call_attribute): Delete.
6480         (arm_is_longcall_p): Rename to...
6481         (arm_is_long_call_p): ...this.  Take a single tree argument and
6482         return a bool.
6483         * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete.
6484         (CUMULATIVE_ARGS): Remove call_cookie.
6485         (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P)
6486         (ENCODED_LONG_CALL_ATTR_P): Delete.
6487         (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and
6488         LONG_CALL_FLAG_CHAR cases.
6489         (ARM_DECLARE_FUNCTION_SIZE): Delete.
6490         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use
6491         ARM_DECLARE_FUNCTION_SIZE.
6492         * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie.
6493         (arm_function_arg): Return const0_rtx for VOIDmode arguments.
6494         (arm_encode_call_attribute, current_file_function_operand): Delete.
6495         (arm_function_in_section_p): New function.
6496         (arm_is_longcall_p): Rename to...
6497         (arm_is_long_call_p): ...this.  Take the target function as a single
6498         argument and return a bool.  Do not rely on call cookies.  Check
6499         whether the target symbol is in the same section as the current
6500         function, not just the same compilation unit.
6501         (arm_function_ok_for_sibcall): Use arm_is_long_call_p.
6502         (arm_encode_section_info): Don't encode a call type.
6503         * config/arm/arm.md (call, call_value): Update calls to
6504         arm_is_long(_)call_p.  Simplify logic.
6505         (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn):
6506         Update calls to arm_is_long(_)call_p.
6507
6508 2007-05-25  Richard Guenther  <rguenther@suse.de>
6509
6510         PR tree-optimization/31982
6511         * tree-ssa-forwprop.c
6512         (forward_propagate_addr_into_variable_array_index): Handle arrays
6513         with element size one.
6514
6515 2007-05-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6516
6517         * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
6518         (umulsi3_highpart): Likewise.
6519
6520 2007-05-24  Ian Lance Taylor  <iant@google.com>
6521
6522         PR rtl-optimization/32069
6523         * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx
6524         is NULL.
6525
6526 2007-05-24  Ollie Wild  <aaw@google.com>
6527
6528         * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__
6529         description.
6530
6531 2007-05-24  Richard Sandiford  <rsandifo@nildram.co.uk>
6532
6533         * postreload-gcse.c (reg_changed_after_insn_p): New function.
6534         (oprs_unchanged_p): Use it to check all registers in a REG.
6535         (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
6536         (reg_set_between_after_reload_p): Delete.
6537         (reg_used_between_after_reload_p): Likewise.
6538         (reg_set_or_used_since_bb_start): Likewise.
6539         (eliminate_partially_redundant_load): Use reg_changed_after_insn_p
6540         and reg_used_between_p instead of reg_set_or_used_since_bb_start.
6541         Use reg_set_between_p instead of reg_set_between_after_reload_p.
6542         * rtlanal.c (reg_set_p): Check whether REG overlaps
6543         regs_invalidated_by_call, rather than just checking the
6544         membership of REGNO (REG).
6545
6546 2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>
6547
6548         * doc/passes.texi: Document predictive commoning.
6549         * doc/invoke.texi (-fpredictive-commoning): Document.
6550         * opts.c (decode_options): Enable flag_predictive_commoning on -O3.
6551         * tree-ssa-loop-im.c (get_lsm_tmp_name): Export.  Allow
6552         adding indices to the generated name.
6553         (schedule_sm): Pass 0 to get_lsm_tmp_name.
6554         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
6555         * tree-pretty-print.c (op_symbol_1): Renamed to ...
6556         (op_symbol_code): ... and exported.
6557         (dump_omp_clause, op_symbol): Use op_symbol_code
6558         instead of op_symbol_1.
6559         * tree-pass.h (pass_predcom): Declare.
6560         * timevar.def (TV_PREDCOM): New timevar.
6561         * tree-ssa-loop.c (run_tree_predictive_commoning,
6562         gate_tree_predictive_commoning, pass_predcom): New.
6563         * tree-data-ref.c (find_data_references_in_loop): Find the
6564         references in dominance order.
6565         (canonicalize_base_object_address): Ensure that the result has
6566         pointer type.
6567         (dr_analyze_innermost): Export.
6568         (create_data_ref): Code to fail for references with invariant
6569         address moved ...
6570         (find_data_references_in_stmt): ... here.
6571         * tree-data-ref.h (dr_analyze_innermost): Declare.
6572         * tree-affine.c: Include tree-gimple.h and hashtab.h.
6573         (aff_combination_find_elt, name_expansion_hash,
6574         name_expansion_eq, tree_to_aff_combination_expand,
6575         double_int_constant_multiple_p, aff_combination_constant_multiple_p):
6576         New functions.
6577         * tree-affine.h (aff_combination_constant_multiple_p,
6578         tree_to_aff_combination_expand): Declare.
6579         * tree-predcom.c: New file.
6580         * common.opt (fpredictive-commoning): New option.
6581         * tree-flow.h (op_symbol_code, tree_predictive_commoning,
6582         stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
6583         * Makefile.in (tree-predcom.o): Add.
6584         (tree-affine.o): Add TREE_GIMPLE_H dependency.
6585         * passes.c (init_optimization_passes):  Add dceloop after
6586         copy propagation in loop optimizer.  Add predictive commoning
6587         to loop optimizer passes.
6588
6589 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
6590
6591         * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct
6592         default hook.
6593
6594 2007-05-24  Jan Hubicka  <jh@suse.cz>
6595
6596         * gengenrtl.c (gendecl, gendef): Output the gens annotated for
6597         statistics.
6598         (genheader): Include statistics.h.
6599
6600         * doc/invoke.texi (-fdump-unnumbered): Update docs when line number
6601         notes are gone.
6602         * print-rtl.c (flag_dump_unnumbered): Update comments.
6603         (print_rtl): Fix my previous change.
6604         * emit-rtl.c (emit_note_before, emit_note_after): Clear out note
6605         specific data.
6606
6607 2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>
6608
6609         PR middle-end/32018
6610         * tree-ssa-threadupdate.c (thread_through_loop_header): Use
6611         set_loop_copy.
6612         (thread_through_all_blocks): Call initialize_original_copy_tables
6613         and free_original_copy_tables.
6614         * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
6615         Use set_loop_copy.
6616         * tree-cfg.c (tree_duplicate_sese_region): Ditto.
6617         * cfghooks.c (duplicate_block): Use get_loop_copy.
6618         * cfg.c: Include cfgloop.h.
6619         (loop_copy): New hash table.
6620         (initialize_original_copy_tables): Initialize loop_copy table.
6621         (free_original_copy_tables): Free loop_copy table.
6622         (copy_original_table_clear, copy_original_table_set,
6623         set_loop_copy, get_loop_copy): New functions.
6624         (set_bb_original, set_bb_copy): Use copy_original_table_set.
6625         * cfgloop.h (struct loop): Remove copy field.
6626         * Makefile.in (cfg.o): Add CFGLOOP_H dependency.
6627         * basic-block.h (set_loop_copy, get_loop_copy): Declare.
6628
6629 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
6630
6631         * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
6632         -msse/-msse2/-msse3.
6633
6634 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
6635
6636         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
6637         __builtin_ia32_vec_set_v2di with MASK_64BIT.
6638
6639 2007-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
6640
6641         PR target/27067
6642         * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
6643         * targhooks.h (default_mangle_decl_assembler_name): Declare
6644         default hook.
6645         * targhooks.c (default_mangle_decl_assembler_name): Define
6646         default hook.
6647         * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
6648         default hook.
6649         * target.h (struct gcc_target): Add mangle_decl_assembler_name field.
6650         * langhooks.c (lhd_set_decl_assembler_name): Call
6651         targetm.mangle_decl_assembler_name for names with global scope.
6652
6653         * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
6654         default.
6655         (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
6656         * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
6657         Declare.
6658         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
6659         New. Factored out of i386_pe_encode_section_info.
6660         (gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
6661         Move check for prior decoration of stdcall
6662         symbols to i386_pe_encode_section_info.
6663         (i386_pe_encode_section_info): Adjust call to
6664         gen_stdcall_or_fastcall_suffix.  Use
6665         i386_pe_maybe_mangle_decl_assembler_name, if needed.
6666         (i386_pe_mangle_decl_assembler_name): New. Wrap
6667         i386_pe_maybe_mangle_decl_assembler_name.
6668
6669 2007-05-16  Rafael Avila de Espindola  <espindola@google.com>
6670
6671         * c-common.c (c_common_signed_or_unsigned_type): Delay the check for
6672         INTEGRAL_TYPE_P and TYPE_UNSIGNED.
6673         * langhooks.c (get_signed_or_unsigned_type): Don't check for
6674         INTEGRAL_TYPE_P or TYPE_UNSIGNED.
6675         (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
6676         TYPE_UNSIGNED.
6677
6678 2007-05-23  Sandra Loosemore  <sandra@codesourcery.com>
6679             Nigel Stephens  <nigel@mips.com>
6680             Richard Sandiford  <richard@codesourcery.com>
6681
6682         Fix up MIPS16 hard float and add support for complex.
6683
6684         * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
6685         (TARGET_SOFT_FLOAT_ABI): New.
6686         (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
6687         __mips_soft_float to reflect the ABI in use, not whether the
6688         FPU is directly accessible (e.g., in MIPS16 mode).
6689         (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
6690         (UNITS_PER_FPVALUE): Likewise.
6691
6692         * config/mips/mips.c (mips_expand_call): Remove redundant
6693         TARGET_MIPS16 check.
6694         (mips_arg_regno): New.
6695         (function_arg_advance): When setting bits in cum->fp_code for
6696         MIPS16, don't subtract 1 from cum->arg_number, since it is now
6697         zero-based.
6698         (function_arg): Use mips_arg_regno.
6699         (mips_return_mode_in_fpr_p): New.
6700         (mips16_call_stub_mode_suffix): New.
6701         (mips16_cfun_returns_in_fpr_p): New.
6702         (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
6703         (mips_output_function_prologue): Test mips16_hard_float, not
6704         !TARGET_SOFT_FLOAT, to decide when a function stub is required.
6705         (mips_expand_epilogue): Call MIPS16 helper routines to copy
6706         return value into a floating-point register.
6707         (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
6708         (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
6709         (mips16_fp_args): Handle MIPS32r2 ISA which supports
6710         TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
6711         word of double arguments from or to the high bits of 64-bit
6712         floating point registers.
6713         (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
6714         (mips16_fpret_double): New helper function.
6715         (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p.  Add
6716         support for complex modes.  Fill in DECL_RESULT for stubdecl.
6717         (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
6718
6719         * config/mips/mips16.S
6720         (RET, ARG1, ARG2): New.
6721         (MERGE_GPRf, MERGE_GPRt): New.
6722         (DELAYt, DELAYf): New.
6723         (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
6724         (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
6725         (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
6726         (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
6727         (SFOP): Renamed to...
6728         (OPSF3): This, and macro-ified.  Updated all uses.
6729         (SFOP2): Renamed to...
6730         (OPSF2): This, and macro-ified.  Updated all uses.
6731         (SFCMP): Renamed to...
6732         (CMPSF): This, and macro-ified.  Updated all uses.
6733         (SFREVCMP): Renamed to...
6734         (REVCMPSF): This, and macro-ified.  Updated all uses.
6735         (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
6736         (LDDBL1, LDDBL2, RETDBL): Deleted.
6737         (DFOP): Renamed to...
6738         (OPDF3): This, and macro-ified.  Updated all uses.
6739         (DFOP2): Renamed to...
6740         (OPDF2): This, and macro-ified.  Updated all uses.
6741         (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
6742         (DFCMP): Renamed to...
6743         (CMPDF): This, and macro-ified.  Updated all uses.
6744         (DFREVCMP): Renamed to...
6745         (REVCMPDF): This, and macro-ified.  Updated all uses.
6746         (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
6747         (RET_FUNCTION): New.
6748         (__mips16_ret_sf, __mips16_ret_df): Macro-ified.
6749         (__mips16_ret_sc, __mips16_ret_dc): New.
6750         (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
6751         STUB_ARGS_6, STUB_ARGS_10): New.
6752         (CALL_STUB_NO_RET): New.
6753         (__mips16_call_stub_1): Macro-ified.
6754         (__mips16_call_stub_5): Macro-ified.
6755         (__mips16_call_stub_2): Macro-ified.
6756         (__mips16_call_stub_6): Macro-ified.
6757         (__mips16_call_stub_9): Macro-ified.
6758         (__mips16_call_stub_10): Macro-ified.
6759         (CALL_STUB_RET): New.
6760         (__mips16_call_stub_sf_0): Macro-ified.
6761         (__mips16_call_stub_sf_1): Macro-ified.
6762         (__mips16_call_stub_sf_5): Macro-ified.
6763         (__mips16_call_stub_sf_2): Macro-ified.
6764         (__mips16_call_stub_sf_6): Macro-ified.
6765         (__mips16_call_stub_sf_9): Macro-ified.
6766         (__mips16_call_stub_sf_10): Macro-ified.
6767         (__mips16_call_stub_df_0): Macro-ified.
6768         (__mips16_call_stub_df_1): Macro-ified.
6769         (__mips16_call_stub_df_5): Macro-ified.
6770         (__mips16_call_stub_df_2): Macro-ified.
6771         (__mips16_call_stub_df_6): Macro-ified.
6772         (__mips16_call_stub_df_9): Macro-ified.
6773         (__mips16_call_stub_df_10): Macro-ified.
6774         (__mips16_call_stub_sc_0): New.
6775         (__mips16_call_stub_sc_1): New.
6776         (__mips16_call_stub_sc_5): New.
6777         (__mips16_call_stub_sc_2): New.
6778         (__mips16_call_stub_sc_6): New.
6779         (__mips16_call_stub_sc_9): New.
6780         (__mips16_call_stub_sc_10): New.
6781         (__mips16_call_stub_dc_0): New.
6782         (__mips16_call_stub_dc_1): New.
6783         (__mips16_call_stub_dc_5): New.
6784         (__mips16_call_stub_dc_2): New.
6785         (__mips16_call_stub_dc_6): New.
6786         (__mips16_call_stub_dc_9): New.
6787         (__mips16_call_stub_dc_10): New.
6788
6789         * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
6790         * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
6791         * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
6792
6793 2007-05-23  Ian Lance Taylor  <iant@google.com>
6794
6795         * doc/invoke.texi (Invoking GCC): Document that the order of the
6796         -l option matters.
6797
6798 2007-05-23  Chen Liqin  <liqin@sunnorth.com.cn>
6799
6800         PR target/30987
6801         * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove.
6802         * config/score/predicate.md (const_pow2, const_npow2): Remove.
6803         * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL
6804         undef.
6805
6806         PR target/30474
6807         * config/score/score.c (score_print_operand): Make sure that only
6808         lower bits are used.
6809
6810 2007-05-22  Ian Lance Taylor  <iant@google.com>
6811
6812         * tree-vrp.c (avoid_overflow_infinity): New static function,
6813         broken out of set_value_range_to_value.
6814         (set_value_range_to_value): Call avoid_overflow_infinity.
6815         (extract_range_from_assert): Likewise.
6816
6817 2007-05-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6818
6819         PR middle-end/31095
6820          * builtins.c (expand_builtin_memmove_args): Strip nops that don't
6821         change the type before looking for a COMPOUND_EXPR.
6822
6823 2007-05-22  Ian Lance Taylor  <iant@google.com>
6824
6825         * lower-subreg.c (decompose_multiword_subregs): If we change an
6826         insn, call remove_retval_note on it.
6827
6828 2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>
6829
6830         * regs.h (end_hard_regno): New function.
6831         (END_HARD_REGNO, END_REGNO): New macros.
6832         (add_to_hard_reg_set): New function.
6833         (remove_from_hard_reg_set): Likewise.
6834         (in_hard_reg_set_p): Likewise.
6835         (overlaps_hard_reg_set_p): Likewise.
6836         * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
6837         (note_btr_set): Use END_HARD_REGNO.
6838         * caller-save.c (setup_save_areas): Use end_hard_regno.
6839         (mark_set_regs): Use END_HARD_REGNO.
6840         (add_stored_regs): Use end_hard_regno.
6841         (mark_referenced_regs): Use add_to_hard_reg_set.
6842         * combine.c (update_table_tick): Use END_REGNO.
6843         (record_value_for_reg): Likewise.
6844         (record_dead_and_set_regs): Likewise.
6845         (get_last_value_validate): Likewise.
6846         (use_crosses_set_p): Likewise.
6847         (reg_dead_at_p_1): Likewise.
6848         (reg_dead_at_p): Likewise.
6849         (mark_used_regs_combine): Use add_to_hard_reg_set.
6850         (move_deaths): Use END_HARD_REGNO.
6851         (reg_bitfield_target_p): Use end_hard_regno.
6852         (distribute_notes): Use END_HARD_REGNO.
6853         * cse.c (mention_regs): Use END_REGNO.
6854         (insert): Use add_to_hard_reg_set.
6855         (invalidate): Use END_HARD_REGNO.
6856         (invalidate_for_call): Likewise.
6857         (exp_equiv_p): Use END_REGNO.
6858         (cse_insn): Likewise.
6859         * cselib.c (cselib_invalidate_regno): Use end_hard_regno.
6860         * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
6861         * df-scan.c (df_ref_record): Use END_HARD_REGNO.
6862         * function.c (keep_stack_depressed): Use end_hard_regno.
6863         * global.c (global_alloc): Use end_hard_regno.
6864         (global_conflicts): Use add_to_hard_reg_set instead of
6865         mark_reg_live_nc.
6866         (find_reg): Likewise.
6867         (mark_reg_store): Likewise.
6868         (mark_reg_conflicts): Likewise.
6869         (mark_reg_death): Use remove_from_hard_reg_set.
6870         (mark_reg_live_nc): Delete.
6871         (set_preference): Use end_hard_regno.
6872         * local-alloc.c (mark_life): Use add_to_hard_reg_set and
6873         remove_from_hard_reg_set.
6874         (post_mark_life): Use add_to_hard_reg_set.
6875         * mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
6876         (reg_becomes_live): Use add_to_hard_reg_set.
6877         * recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
6878         (peep2_find_free_register): Use add_to_hard_reg_set.
6879         * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
6880         * regclass.c (record_reg_classes): Use in_hard_reg_set_p.
6881         * regrename.c (note_sets): Use add_to_hard_reg_set.
6882         (clear_dead_regs): Use remove_from_hard_reg_set.
6883         (regrename_optimize): Use add_to_hard_reg_set.
6884         (find_oldest_value_reg): Use in_hard_reg_set_p.
6885         * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
6886         (hard_reg_set_here_p): Use end_hard_regno.
6887         (decompose): Likewise.
6888         (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
6889         (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
6890         * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
6891         (mark_home_live): Use end_hard_regno.
6892         (spill_hard_reg): Likewise.
6893         (clear_reload_reg_in_use): Likewise.
6894         * reorg.c (delete_prior_computation): Use END_REGNO.
6895         * resource.c (update_live_status): Use END_HARD_REGNO.
6896         (mark_referenced_resources): Use add_to_hard_reg_set.
6897         (mark_set_resources): Likewise.
6898         (mark_target_live_regs): Likewise.  Use remove_from_hard_reg_set.
6899         * rtlanal.c (refers_to_regno_p): Use END_REGNO.
6900         (reg_overlap_mentioned_p): Likewise.
6901         (dead_or_set_p): Likewise.  Use an exclusive upper loop bound.
6902         (covers_regno_no_parallel_p): Use END_REGNO.
6903         (find_regno_note): Likewise.
6904         (find_reg_fusage): Use END_HARD_REGNO.
6905         * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
6906         * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
6907
6908 2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>
6909
6910         * mode-switching.c (reg_dies): Change type of second argument to
6911         "HARD_REG_SET *".
6912         (optimize_mode_switching): Update accordingly.
6913
6914 2007-05-22  Richard Sandiford  <richard@codesourcery.com>
6915
6916         * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
6917         in favor of...
6918         (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
6919         (hard_reg_set_empty_p): ...these new functions.
6920         * bt-load.c (choose_btr): Use hard_reg_subset_p instead of
6921         GO_IF_HARD_REG_SUBSET.
6922         * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
6923         instead of GO_IF_HARD_REG_EQUAL.
6924         * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
6925         instead of GO_IF_HARD_REG_EQUAL.
6926         * global.c (find_reg): Use hard_reg_set_empty_p instead of
6927         GO_IF_HARD_REG_SUBSET.
6928         (modify_reg_pav): Use hard_reg_set_empty_p instead of
6929         GO_IF_HARD_REG_EQUAL.
6930         * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
6931         of GO_IF_HARD_REG_SUBSET.
6932         * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
6933         instead of GO_IF_HARD_REG_EQUAL.
6934         * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
6935         hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
6936         (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
6937         of GO_IF_HARD_REG_SUBSET,
6938         * reload1.c (finish_spills): Use hard_reg_subset_p instead of
6939         GO_IF_HARD_REG_SUBSET.
6940         * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
6941         instead of GO_IF_HARD_REG_EQUAL.
6942         * config/sh/sh.c (push_regs, calc_live_regs): Use
6943         hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
6944         (hard_regs_intersect_p): Delete.
6945
6946 2007-05-22  Janis Johnson  <janis187@us.ibm.com>
6947
6948         * doc/sourcebuild.texi (Test Directives) Add dg-message.
6949
6950 2007-05-22  H.J. Lu  <hongjiu.lu@intel.com>
6951             Richard Henderson  <rth@redhat.com>
6952
6953         * config.gcc (i[34567]86-*-*): Add smmintrin.h to
6954         extra_headers.
6955         (x86_64-*-*): Likewise.
6956
6957         * i386/i386-modes.def (V2QI): New.
6958
6959         * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
6960         SSE4A.
6961         (override_options): Support SSE4.1.
6962         (IX86_BUILTIN_BLENDPD): New for SSE4.1.
6963         (IX86_BUILTIN_BLENDPS): Likewise.
6964         (IX86_BUILTIN_BLENDVPD): Likewise.
6965         (IX86_BUILTIN_BLENDVPS): Likewise.
6966         (IX86_BUILTIN_PBLENDVB128): Likewise.
6967         (IX86_BUILTIN_PBLENDW128): Likewise.
6968         (IX86_BUILTIN_DPPD): Likewise.
6969         (IX86_BUILTIN_DPPS): Likewise.
6970         (IX86_BUILTIN_INSERTPS128): Likewise.
6971         (IX86_BUILTIN_MOVNTDQA): Likewise.
6972         (IX86_BUILTIN_MPSADBW128): Likewise.
6973         (IX86_BUILTIN_PACKUSDW128): Likewise.
6974         (IX86_BUILTIN_PCMPEQQ): Likewise.
6975         (IX86_BUILTIN_PHMINPOSUW128): Likewise.
6976         (IX86_BUILTIN_PMAXSB128): Likewise.
6977         (IX86_BUILTIN_PMAXSD128): Likewise.
6978         (IX86_BUILTIN_PMAXUD128): Likewise.
6979         (IX86_BUILTIN_PMAXUW128): Likewise.
6980         (IX86_BUILTIN_PMINSB128): Likewise.
6981         (IX86_BUILTIN_PMINSD128): Likewise.
6982         (IX86_BUILTIN_PMINUD128): Likewise.
6983         (IX86_BUILTIN_PMINUW128): Likewise.
6984         (IX86_BUILTIN_PMOVSXBW128): Likewise.
6985         (IX86_BUILTIN_PMOVSXBD128): Likewise.
6986         (IX86_BUILTIN_PMOVSXBQ128): Likewise.
6987         (IX86_BUILTIN_PMOVSXWD128): Likewise.
6988         (IX86_BUILTIN_PMOVSXWQ128): Likewise.
6989         (IX86_BUILTIN_PMOVSXDQ128): Likewise.
6990         (IX86_BUILTIN_PMOVZXBW128): Likewise.
6991         (IX86_BUILTIN_PMOVZXBD128): Likewise.
6992         (IX86_BUILTIN_PMOVZXBQ128): Likewise.
6993         (IX86_BUILTIN_PMOVZXWD128): Likewise.
6994         (IX86_BUILTIN_PMOVZXWQ128): Likewise.
6995         (IX86_BUILTIN_PMOVZXDQ128): Likewise.
6996         (IX86_BUILTIN_PMULDQ128): Likewise.
6997         (IX86_BUILTIN_PMULLD128): Likewise.
6998         (IX86_BUILTIN_ROUNDPD): Likewise.
6999         (IX86_BUILTIN_ROUNDPS): Likewise.
7000         (IX86_BUILTIN_ROUNDSD): Likewise.
7001         (IX86_BUILTIN_ROUNDSS): Likewise.
7002         (IX86_BUILTIN_PTESTZ): Likewise.
7003         (IX86_BUILTIN_PTESTC): Likewise.
7004         (IX86_BUILTIN_PTESTNZC): Likewise.
7005         (IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
7006         (IX86_BUILTIN_VEC_SET_V2DI): Likewise.
7007         (IX86_BUILTIN_VEC_SET_V4SF): Likewise.
7008         (IX86_BUILTIN_VEC_SET_V4SI): Likewise.
7009         (IX86_BUILTIN_VEC_SET_V16QI): Likewise.
7010         (bdesc_ptest): New.
7011         (bdesc_sse_3arg): Likewise.
7012         (bdesc_2arg): Likewise.
7013         (bdesc_1arg): Likewise.
7014         (ix86_init_mmx_sse_builtins): Support SSE4.1.  Handle SSE builtins
7015         with 3 args.
7016         (ix86_expand_sse_4_operands_builtin): New.
7017         (ix86_expand_unop_builtin): Support 2 arg builtins with a constant
7018         smaller than 8 bits as the 2nd arg.
7019         (ix86_expand_sse_ptest): New.
7020         (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
7021         (ix86_expand_vector_set): Support SSE4.1.
7022         (ix86_expand_vector_extract): Likewise.
7023
7024         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
7025         __SSE4_1__ for -msse4.1.
7026
7027         * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
7028         (UNSPEC_INSERTPS): Likewise.
7029         (UNSPEC_DP): Likewise.
7030         (UNSPEC_MOVNTDQA): Likewise.
7031         (UNSPEC_MPSADBW): Likewise.
7032         (UNSPEC_PHMINPOSUW): Likewise.
7033         (UNSPEC_PTEST): Likewise.
7034         (UNSPEC_ROUNDP): Likewise.
7035         (UNSPEC_ROUNDS): Likewise.
7036
7037         * config/i386/i386.opt (msse4.1): New for SSE4.1.
7038
7039         * config/i386/predicates.md (const_pow2_1_to_2_operand): New.
7040         (const_pow2_1_to_32768_operand): Likewise.
7041
7042         * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
7043         file.
7044
7045         * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
7046         SSE4.1.
7047         (sse4_1_insertps): Likewise.
7048         (*sse4_1_extractps): Likewise.
7049         (sse4_1_ptest): Likewise.
7050         (sse4_1_mulv2siv2di3): Likewise.
7051         (*sse4_1_mulv4si3): Likewise.
7052         (*sse4_1_smax<mode>3): Likewise.
7053         (*sse4_1_umax<mode>3): Likewise.
7054         (*sse4_1_smin<mode>3): Likewise.
7055         (*sse4_1_umin<mode>3): Likewise.
7056         (sse4_1_eqv2di3): Likewise.
7057         (*sse4_1_pinsrb): Likewise.
7058         (*sse4_1_pinsrd): Likewise.
7059         (*sse4_1_pinsrq): Likewise.
7060         (*sse4_1_pextrb): Likewise.
7061         (*sse4_1_pextrb_memory): Likewise.
7062         (*sse4_1_pextrw_memory): Likewise.
7063         (*sse4_1_pextrq): Likewise.
7064         (sse4_1_blendpd): Likewise.
7065         (sse4_1_blendps): Likewise.
7066         (sse4_1_blendvpd): Likewise.
7067         (sse4_1_blendvps): Likewise.
7068         (sse4_1_dppd): Likewise.
7069         (sse4_1_dpps): Likewise.
7070         (sse4_1_movntdqa): Likewise.
7071         (sse4_1_mpsadbw): Likewise.
7072         (sse4_1_packusdw): Likewise.
7073         (sse4_1_pblendvb): Likewise.
7074         (sse4_1_pblendw): Likewise.
7075         (sse4_1_phminposuw): Likewise.
7076         (sse4_1_extendv8qiv8hi2): Likewise.
7077         (*sse4_1_extendv8qiv8hi2): Likewise.
7078         (sse4_1_extendv4qiv4si2): Likewise.
7079         (*sse4_1_extendv4qiv4si2): Likewise.
7080         (sse4_1_extendv2qiv2di2): Likewise.
7081         (*sse4_1_extendv2qiv2di2): Likewise.
7082         (sse4_1_extendv4hiv4si2): Likewise.
7083         (*sse4_1_extendv4hiv4si2): Likewise.
7084         (sse4_1_extendv2hiv2di2): Likewise.
7085         (*sse4_1_extendv2hiv2di2): Likewise.
7086         (sse4_1_extendv2siv2di2): Likewise.
7087         (*sse4_1_extendv2siv2di2): Likewise.
7088         (sse4_1_zero_extendv8qiv8hi2): Likewise.
7089         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
7090         (sse4_1_zero_extendv4qiv4si2): Likewise.
7091         (*sse4_1_zero_extendv4qiv4si2): Likewise.
7092         (sse4_1_zero_extendv2qiv2di2): Likewise.
7093         (*sse4_1_zero_extendv2qiv2di2): Likewise.
7094         (sse4_1_zero_extendv4hiv4si2): Likewise.
7095         (*sse4_1_zero_extendv4hiv4si2): Likewise.
7096         (sse4_1_zero_extendv2hiv2di2): Likewise.
7097         (*sse4_1_zero_extendv2hiv2di2): Likewise.
7098         (sse4_1_zero_extendv2siv2di2): Likewise.
7099         (*sse4_1_zero_extendv2siv2di2): Likewise.
7100         (sse4_1_roundpd): Likewise.
7101         (sse4_1_roundps): Likewise.
7102         (sse4_1_roundsd): Likewise.
7103         (sse4_1_roundss): Likewise.
7104         (mulv4si3): Don't expand for SSE4.1.
7105         (smax<mode>3): Likewise.
7106         (umaxv4si3): Likewise.
7107         (uminv16qi3): Likewise.
7108         (umin<mode>3): Likewise.
7109         (umaxv8hi3): Rewrite.  Only enabled for SSE4.1.
7110
7111         * doc/extend.texi: Document SSE4.1 built-in functions.
7112
7113         * doc/invoke.texi: Document -msse4.1.
7114
7115 2007-05-22  Nathan Sidwell  <nathan@codesourcery.com>
7116
7117         * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
7118         * config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
7119         * config/m68k/m68k.h (ASM_PCREL_SPEC): New.
7120         (ASM_SPEC): Add asm_pcrel_spec.
7121         (EXTRA_SPECS): Add asm_pcrel_spec.
7122
7123 2007-05-21  David Daney  <ddaney@avtrex.com>
7124
7125         * doc/install.texi (Building a cross compiler): Add requirements
7126         for Java cross compiler.
7127
7128 2007-05-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7129
7130         PR middle-end/31995
7131         * tree-chrec.c (evolution_function_is_affine_multivariate_p):
7132         Add loopno argument.  Use evolution_function_is_invariant_rec_p
7133         instead of evolution_function_is_constant_p.
7134         Update calls to evolution_function_is_affine_multivariate_p.
7135         * tree-chrec.h (evolution_function_is_affine_multivariate_p):
7136         Add loopno argument.
7137         * tree-scalar-evolution.c (gather_chrec_stats): Call
7138         evolution_function_is_affine_multivariate_p with a loop
7139         number of 0.
7140         * tree-data-ref.c (analyze_miv_subscript): Likewise.
7141         (analyze_overlapping_iterations): Likewise.
7142         (access_functions_are_affine_or_constant_p): Likewise.
7143         (build_classic_dist_vector_1): If the access functions
7144         are equal, don't do anything.
7145
7146 2007-05-21  Paolo Bonzini  <bonzini@gnu.org>
7147             Paolo Carlini  <pcarlini@suse.de>
7148             Uros Bizjak  <ubizjak@gmail.com>
7149
7150         * c-cppbuiltin.c (c_cpp_builtins): Define
7151         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
7152         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
7153         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
7154         * doc/cpp.texi ([Standard Predefined Macros]): Document.
7155
7156 2007-05-21  Mike Stump  <mrs@apple.com>
7157
7158         * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
7159         handling as well.
7160         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
7161
7162 2007-05-21  Uros Bizjak  <ubizjak@gmail.com>
7163
7164         * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro
7165         implementation if __OPTIMIZE__ is not defined.
7166         (_mm_alignr_pi8): Ditto.
7167         * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
7168         (_mm_inserti_si64): Ditto.
7169         * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
7170         (_mm_slli_epi16): Ditto.
7171         (_mm_slli_epi32): Ditto.
7172         (_mm_slli_epi64): Ditto.
7173         (_mm_srai_epi16): Ditto.
7174         (_mm_srai_epi32): Ditto.
7175         (_mm_srli_si128): Ditto.
7176         (_mm_slli_si128): Ditto.
7177         (_mm_srli_epi16): Ditto.
7178         (_mm_srli_epi32): Ditto.
7179         (_mm_srli_epi64): Ditto.
7180         (_mm_extract_epi16): Ditto.
7181         (_mm_insert_epi16): Ditto.
7182         (_mm_shufflehi_epi16): Ditto.
7183         (_mm_shufflelo_epi16): Ditto.
7184         (_mm_shuffle_epi32): Ditto.
7185         * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto.
7186         (_m_pextrw): Ditto.
7187         (_mm_insert_pi16): Ditto.
7188         (_m_pinsrw): Ditto.
7189         (_mm_shuffle_pi16): Ditto.
7190         (_m_pshufw): Ditto.
7191         (_mm_shufle_ps): Ditto.
7192         (_mm_prefetch): Ditto.
7193
7194 2007-05-21  Andreas Krebbel  <krebbel1@de.ibm.com>
7195
7196         * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
7197         * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
7198         * real.c (encode_i370_single, decode_i370_single,
7199         encode_i370_double, decode_i370_double): Functions removed.
7200         (i370_single_format, i370_double_format): Initializations removed.
7201         (real_maxval, round_for_format, exact_real_truncate, significand_size):
7202         Consider the log2_b field to always be one.
7203         (ieee_single_format, mips_single_format, coldfire_single_format,
7204         ieee_double_format, mips_double_format, coldfire_double_format,
7205         ieee_extended_motorola_format, ieee_extended_intel_96_format,
7206         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
7207         ibm_extended_format, mips_extended_format, ieee_quad_format,
7208         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
7209         decimal_single_format, decimal_double_format, decimal_quad_format,
7210         c4x_single_format, c4x_extended_format, real_internal_format): Remove
7211         initialization of log2_b.
7212         * real.h (i370_single_format, i370_double_format): Declarations
7213         removed.
7214         * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
7215         field to always be one.
7216
7217 2007-05-21  Andreas Schwab  <schwab@suse.de>
7218
7219         * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
7220         NOTE_INSN_BASIC_BLOCK_P.
7221         (process_for_unwind_directive): Likewise.
7222
7223 2007-05-21  Nathan Sidwell  <nathan@codesourcery.com>
7224
7225         * builtins.c (expand_builtin_setjmp_setup): Update comment.
7226         * function.h (struct function): Move va_list_gpr_size,
7227         va_list_fpr_size, function_frequency to front of bitfields.  Add
7228         calls_unwind_init.
7229         (current_function_calls_unwind_init): New.
7230         * except.c (expand_builtin_unwind_init): Set
7231         current_function_calls_unwind_init not
7232         current_function_has_nonlocal_label.
7233         * reload1.c (has_nonexceptional_receiver): New.
7234         (reload): Use it and current_function_calls_unwind_init to
7235         determine whether call-saved regs must be saved.
7236
7237 2007-05-20  Jan Hubicka  <jh@suse.cz>
7238
7239         * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
7240         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
7241         * ddg.c (create_ddg): LIkewise.
7242         * final.c (final): Remove hunk moving line number notes around since
7243         they are no longer present at this stage.
7244         (final_scan_insn): Use NOTE_KIND instead of
7245         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
7246         (output_asm_label): Likewise.
7247         * reorg.c (dbr_schedule): Likewise.
7248         * haifa-sched.c (unlink_other_notes): Likewise.
7249         * mode-switching.c (optimize_mode_switching): Likewise.
7250         * graph.c (start_bb): Likewise.
7251         * rtl.def (NOTE): Update description.
7252         * jump.c (squeeze_notes): Delete.
7253         (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
7254         NOTE_INSN_BASIC_BLOCK_P when possible.
7255         * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
7256         * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
7257         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
7258         (dwarf2out_var_location): Likewise.
7259         * cfgbuild.c (make_edges): Likewise.
7260         (find_basic_blocks_1): Likewise.
7261         * function.c (reorder_blocks_1): Likewise.
7262         (epilogue_done): Likewise.
7263         (reposition_prologue_and_epilogue_notes): Likewise.
7264         * print-rtl.c (print_rtx): Likewise; drop code for printing
7265         line number notes.
7266         (print_rtl): Likewise.
7267         (print_rtl_single): Likewise.
7268         * gcse.c (insert_insn_start_bb): Likewise.
7269         * alias.c (init_alias_analysis): Likewise.
7270         * calls.c (fixup_tail_calls): Likewise.
7271         * except.c (sjlj_emit_function_enter): Likewise.
7272         * emit-rtl.c (add_insn_after): Likeiwse.
7273         (emit_label_before): Likewise.
7274         (emit_label_after): Likewise.
7275         (emit_note_before, emit_note_after, emit_note): Update
7276         parameter to be enum insn_note; do not deal with source
7277         files.
7278         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
7279         Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
7280         when possible.
7281         (merge_blocks_move_successor_nojumps): Simplify now when
7282         we don't have BLOCK notes.
7283         (try_optimize_cfg): Likewise.
7284         * cfglayout.c (skip_insns_after_block): Likewise.
7285         (record_effective_endpoints): Likewise.
7286         (duplicate_insn_chain): Likewise.
7287         * varasm.c (output_constant_pool_1): Likewise.
7288         * sched-deps.c (sched_analyze): Likewise.
7289         * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
7290         Exterminate.
7291         (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
7292         * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
7293         (SET_INSN_DELETED): Simplify.
7294         (NOTE_LINE_NUMBER): Exterminate.
7295         (NOTE_LINE_KIND): New.
7296         (NOTE_INSN_BASIC_BLOCK_P): Update.
7297         (enum insn_note): Simplify.
7298         (GET_NOTE_INSN_NAME) Simplify.
7299         (emit_note_before, emit_note_after, emit_note): Update prototype.
7300         (squeeze_notes): Remove.
7301         * sched-int.h (NOTE_NOT_BB_P): Update.
7302         * resource.c (mark_target_live_regs): Update.
7303         * sched-rgn.c (debug_dependencies): Update.
7304         * sched-vis.c (print_insn): Update.
7305         * config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
7306         * config/i386/i386.c (ix86_output_function_epilogue): Update.
7307         * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
7308         (TARGET_ADJUST_UNROLL_MAX): Likewise.
7309         (split_branches): Update.
7310         (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
7311         4.0.0.
7312         (sh_adjust_unroll_max): Exterminate.
7313         * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
7314         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
7315         (m68hc11_reorg): Likewise.
7316         * config/ia64/ia64.c (emit_insn_group_barriers): Update.
7317         (emit_predicate_relation_info): Update.
7318         (process_for_unwind_directive): Update.
7319         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
7320         (output_call): Update.
7321         * config/pa/pa.c (output_lbranch): Update.
7322         (output_millicode_call): Update.
7323         (output_call): Update.
7324         (pa_combine_instructions): Update.
7325         * config/mips/mips.c (mips16_gp_pseudo_reg): Update.
7326         * config/bfin/bfin.c (gen_one_bundle): Update.
7327         * cfgrtl.c (can_delete_note_p): Update.
7328         (delete_insn): Update.
7329         (rtl_merge_blocks): Update.
7330         (commit_one_edge_insertion): Update.
7331         (rtl_verify_flow_info): Update.
7332         * stmt.c (expand_case): Do not call squeeze_notes.
7333
7334 2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7335
7336         PR middle-end/7651
7337         PR c++/11856
7338         PR c/12963
7339         PR c/23587
7340         PR other/29694
7341         * c.opt (Wtype-limits): New.
7342         * doc/invoke.texi (Wtype-limits): Document it.
7343         (Wextra): Enabled by -Wextra.
7344         * c-opts.c (c_common_post_options): Enabled by -Wextra.
7345         * c-common.c (shorten_compare): Warn with Wtype-limits.
7346
7347 2007-05-20  Uros Bizjak  <ubizjak@gmail.com>
7348
7349         * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
7350         inlined function, not as a macro.
7351         (_mm_alignr_pi8): Ditto.
7352         * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
7353         (_mm_inserti_si64): Ditto.
7354         * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
7355         (_mm_extract_epi16): Ditto.
7356         (_mm_insert_epi16): Ditto.
7357         (_mm_shufflehi_epi16): Ditto.
7358         (_mm_shufflelo_epi16): Ditto.
7359         (_mm_shuffle_epi32): Ditto.
7360         * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
7361         * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
7362         all functions.
7363         (_m_from_float): Add __extension__ to conversion.  Use 0.0f for
7364         float constant.
7365         (_m_to_float): Use C89 compatible assignment.
7366
7367 2007-05-20  Martin Michlmayr  <tbm@cyrius.com>
7368
7369         PR target/32007
7370         * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
7371
7372 2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7373
7374         PR middle-end/7651
7375         * doc/invoke.texi (Wreturn-type): Complete description.
7376         (Wextra): Delete item about return-type warning.
7377         * c-decl.c: Delete redundant Wextra warning.
7378
7379 2007-05-20  Uros Bizjak  <ubizjak@gmail.com>
7380
7381         PR target/31585
7382         * config/i386/pmmintrin.h: Do not include xmmintrin.h
7383         * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
7384         inlined function, not as a macro.
7385         (_mm_prefetch): Ditto.
7386         (_m_pextrw): Ditto.
7387         (_mm_insert_pi16): Ditto.
7388         (_m_pinsrw): Ditto.
7389         (_mm_shuffle_pi16): Ditto.  Add const to __N argument.
7390         (_m_pshufw): Ditto. Add const to __N argument.
7391         (_mm_shufle_ps): Ditto.  Add const to __mask argument.
7392         * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
7393         (_mm_slli_epi32): Ditto.
7394         (_mm_srli_si128): Implement as always inlined function, not as a
7395         macro.  Add __inline to function declaration.
7396         (_mm_slli_si128): Ditto.
7397
7398 2007-05-19  Uros Bizjak  <ubizjak@gmail.com>
7399
7400         * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
7401         FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
7402         New constants.
7403         (struct fenv): New structure.
7404         (FP_HANDLE_EXCEPTIONS): New define.
7405         (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
7406         (_FP_DECL_EXP): New define.
7407         (FP_INIT_ROUNDMODE): New define.
7408         (FP_ROUNDMODE): New define.
7409
7410 2007-05-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7411
7412         * doc/invoke.texi (Warning Options): Add -Wconversion-sign.
7413         (Wconversion): Update description.
7414         (Wconversion-sign): New.
7415         * c.opt (Wconversion-sign): New.
7416         * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
7417         means disabled for C++. Otherwise, take the status of Wconversion.
7418         * c-common.c (conversion_warning): Warn with either Wconversion or
7419         Wconversion-sign.
7420         (warnings_for_convert_and_check): Conditions are already checked by
7421         conversion_warning.
7422         (convert_and_check): Don't check warnings if the conversion failed.
7423
7424 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
7425            Anatoly Sokolov <aesok@dol.ru>
7426
7427         * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
7428         avr_epilogue_uses) : Add declaration.
7429         * config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
7430         * config/avr/constraints.md (R): New constraint.
7431         config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
7432         UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
7433         (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
7434         (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
7435         (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
7436         call_prologue_saves, epilogue_restores, return_from_epilogue,
7437         return_from_main_epilogue, return_from_interrupt_epilogue,
7438         return_from_naked_epilogue, prologue, epilogue): New patterns.
7439         (jump): Handle symbol reference.
7440         * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
7441         avr_output_function_prologue, avr_output_function_epilogue): Remove
7442         functions.
7443         (avr_init_machine_status, expand_prologue, expand_epilogue,
7444         avr_asm_function_end_prologue, avr_epilogue_uses,
7445         avr_asm_function_begin_epilogue): New functions.
7446         (prologue_size, epilogue_size, jump_tables_size): Remove global
7447         variables.
7448         (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
7449         (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
7450         (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
7451         (avr_override_options): Initialise init_machine_status.
7452         (output_movhi): Handle all stack pointer loads.
7453         (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
7454         (avr_output_addr_vec_elt): Do not use variable jump_tables_size.
7455         * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
7456         (EPILOGUE_USES) Redefine.
7457         (machine_function) Declare.
7458
7459 2007-05-19  Richard Sandiford  <richard@codesourcery.com>
7460
7461         * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
7462         Use a single return statement.
7463
7464 2007-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7465
7466         PR middle-end/30250
7467         * builtins.c (do_mpfr_lgamma_r): New.
7468         (fold_builtin_2): Handle builtin gamma_r/lgamma_r.
7469         * tree.h (CASE_FLT_FN_REENT): New.
7470
7471 2007-05-18  Geoffrey Keating  <geoffk@apple.com>
7472
7473         * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
7474         (output_die): Use 'unsigned long' with %x.
7475         * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
7476         HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
7477         * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.
7478
7479         * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.
7480
7481 2007-05-18  H.J. Lu  <hongjiu.lu@intel.com>
7482
7483         PR target/31989
7484         PR target/31681
7485         PR target/31666
7486         * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
7487         true if function has no argument.
7488
7489 2007-05-18  DJ Delorie  <dj@redhat.com>
7490
7491         * config/mips/mips.c (mips_offset_within_alignment_p): New.
7492         (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.
7493
7494 2007-05-18  Uros Bizjak  <ubizjak@gmail.com>
7495
7496         * longlong.h (__x86_64__): Add definitions for add_ssaaaa,
7497         sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
7498         count_trailing_zeros.
7499         (__i386__): Implement count_leading_zeros using __builtin_clz().
7500         Implement count_trailing_zeros usign __builtin_ctz().
7501
7502 2007-05-18  Richard Sandiford  <richard@codesourcery.com>
7503
7504         * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.
7505
7506 2007-05-18  Uros Bizjak  <ubizjak@gmail.com>
7507
7508         PR middle-end/31344
7509         * expr.c (emit_move_change_mode): Change mode of push operands here.
7510
7511 2007-05-17  Ian Lance Taylor  <iant@google.com>
7512
7513         PR tree-optimization/31953
7514         * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
7515         Change all callers.
7516         (set_value_range_to_null): Call set_value_range_to_value.
7517         (extract_range_from_comparison): Likewise.
7518
7519 2007-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7520
7521         * toplev.c (print_version): Output GMP/MPFR version info.
7522
7523         * builtins.c (CASE_MATHFN_REENT): New macro.
7524         (mathfn_built_in): Use it.
7525         * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
7526         BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
7527         BUILT_IN_LGAMMAL_R): New.
7528         * doc/extend.texi: Document new builtins.
7529
7530         PR middle-end/31796
7531         * builtins.c (do_mpfr_remquo): New.
7532         (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
7533         (fold_builtin_3): Handle BUILT_IN_REMQUO.
7534
7535         PR middle-end/30251
7536         * builtins.c (fold_builtin_1): Handle y0, y1.
7537         (fold_builtin_2): Handle yn.
7538
7539         PR middle-end/30251
7540         * builtins.c (do_mpfr_bessel_n): New.
7541         (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
7542         (fold_builtin_2): Handle BUILT_IN_JN.
7543
7544 2007-05-17  Danny Smith  <dannysmith@users.sourceforge.net>
7545
7546         PR target/31965
7547         * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
7548         TYPE_PRECISION (intmax_type_node).
7549
7550 2007-05-17  Steve Ellcey  <sje@cup.hp.com>
7551
7552         PR target/31850
7553         * reload.c (subst_reloads): Remove checking.
7554
7555 2007-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
7556
7557         PR rtl-optimization/31691
7558         * combine.c (simplify_set): Build a new src pattern instead of
7559         substituting its operands in the COMPARE case.
7560
7561 2007-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
7562
7563         * tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
7564         (execute_vrp): Preserve loops through jump threading.
7565         * tree-ssa-threadupdate.c (thread_single_edge,
7566         dbds_continue_enumeration_p, determine_bb_domination_status,
7567         thread_through_loop_header): New functions.
7568         (create_edge_and_update_destination_phis,
7569         create_edge_and_update_destination_phis): Set loops for the new blocks.
7570         (prune_undesirable_thread_requests): Removed.
7571         (redirect_edges): Do not pretend that redirect_edge_and_branch can
7572         create new blocks.
7573         (thread_block): Do not call prune_undesirable_thread_requests.
7574         Update loops.
7575         (mark_threaded_blocks): Select edges to thread here.
7576         (thread_through_all_blocks): Take may_peel_loop_headers argument.
7577         Thread edges through loop headers independently.
7578         * cfgloopmanip.c (create_preheader, mfb_keep_just): Export.
7579         * tree-pass.h (TODO_mark_first_instance): New.
7580         (first_pass_instance): Declare.
7581         * cfghooks.c (duplicate_block): Put the block to the original loop
7582         if copy is not specified.
7583         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through
7584         jump threading.  Pass may_peel_loop_headers to
7585         thread_through_all_blocks according to first_pass_instance.
7586         * cfgloop.h (create_preheader): Declare.
7587         * tree-flow.h (thread_through_all_blocks): Declaration changed.
7588         * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare.
7589         * passes.c (first_pass_instance): New variable.
7590         (next_pass_1): Set TODO_mark_first_instance.
7591         (execute_todo): Set first_pass_instance.
7592
7593 2007-05-17  Uros Bizjak  <ubizjak@gmail.com>
7594
7595         PR tree-optimization/24659
7596         * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi,
7597         OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi,
7598         OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and
7599         OTI_vec_pack_ufix_trunc.
7600         (vec_unpacks_float_hi_optab): Define new macro.
7601         (vec_unpacks_float_lo_optab): Ditto.
7602         (vec_unpacku_float_hi_optab): Ditto.
7603         (vec_unpacku_float_lo_optab): Ditto.
7604         (vec_pack_sfix_trunc_optab): Ditto.
7605         (vec_pack_ufix_trunc_optab): Ditto.
7606         * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab
7607         and vec_pack_[s|u]fix_trunc_optab using
7608         vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns
7609         * tree-vectorizer.c (supportable_widening_operation): Handle
7610         FLOAT_EXPR and CONVERT_EXPR.  Update comment.
7611         (supportable_narrowing_operation): New function.
7612         * tree-vectorizer.h (supportable_narrowing_operation): Prototype.
7613         * tree-vect-transform.c (vectorizable_conversion): Handle
7614         (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
7615         (vect_gen_widened_results_half): Move before vectorizable_conversion.
7616         (vectorizable_type_demotion): Call supportable_narrowing_operation()
7617         to check for target support.
7618         * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab
7619         for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab
7620         for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab
7621         for VEC_PACK_FIX_TRUNC_EXPR.
7622         (expand_binop): Special case mode of the result for
7623         vec_pack_[u|s]fix_trunc_optab.
7624         (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and
7625         vec_pack_[u|s]fix_trunc_optab.
7626
7627         * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR,
7628         VEC_PACK_FIX_TRUNC_EXPR): New tree codes.
7629         * tree-pretty-print.c (dump_generic_node): Handle
7630         VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
7631         VEC_PACK_FIX_TRUNC_EXPR.
7632         (op_prio): Ditto.
7633         * expr.c (expand_expr_real_1): Ditto.
7634         * tree-inline.c (estimate_num_insns_1): Ditto.
7635         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
7636
7637         * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander.
7638         (vec_unpacks_float_lo_v8hi): Ditto.
7639         (vec_unpacku_float_hi_v8hi): Ditto.
7640         (vec_unpacku_float_lo_v8hi): Ditto.
7641         (vec_unpacks_float_hi_v4si): Ditto.
7642         (vec_unpacks_float_lo_v4si): Ditto.
7643         (vec_pack_sfix_trunc_v2df): Ditto.
7644
7645         * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]:
7646         Document.
7647         [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto.
7648         [VEC_PACK_FIX_TRUNC_EXPR]: Ditto.
7649         * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document.
7650         [vec_pack_ufix_trunc]: Ditto.
7651         [vec_unpacks_float_hi]: Ditto.
7652         [vec_unpacks_float_lo]: Ditto.
7653         [vec_unpacku_float_hi]: Ditto.
7654         [vec_unpacku_float_lo]: Ditto.
7655
7656 2007-05-16  Uros Bizjak  <ubizjak@gmail.com>
7657
7658         * soft-fp/README: Update for new files.
7659         * soft-fp/floattisf.c: New file.
7660         * soft-fp/floattidf.c: New file.
7661         * soft-fp/floattitf.c: New file.
7662         * soft-fp/floatuntisf.c: New file.
7663         * soft-fp/floatuntidf.c: New file.
7664         * soft-fp/floatuntitf.c: New file.
7665         * soft-fp/fixsfti.c: New file.
7666         * soft-fp/fixdfti.c: New file.
7667         * soft-fp/fixtfti.c: New file.
7668         * soft-fp/fixunssfti.c: New file.
7669         * soft-fp/fixunsdfti.c: New file.
7670         * soft-fp/fixunstfti.c: New file.
7671         * soft-fp/extendxftf.c: New file.
7672         * soft-fp/trunctfxf.c: New file.
7673
7674         * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section.
7675         (__trunctfxf2): Ditto.
7676
7677         * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2,
7678         __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti,
7679         __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf,
7680         __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2,
7681         __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2,
7682         __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets.
7683
7684         * config/i386/t-fprules-softfp64: New file.
7685         * config/i386/sfp-machine.h: New file.
7686         * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu,
7687         x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64
7688         and soft-fp/t-softfp to tmake_file.
7689         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
7690         i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.
7691
7692         * config/i386/t-linux64 (softfp_wrap_start): New.
7693         (softfp_wrap_end): New.
7694         * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
7695         supported for TARGET_64BIT.
7696
7697 2007-05-16  Rafael Avila de Espindola  <espindola@google.com>
7698
7699         * c-common.c (c_common_signed_or_unsigned_type): Emulate
7700         c_common_unsigned_type behavior.
7701
7702 2007-05-16  Paolo Bonzini  <bonzini@gnu.org>
7703
7704         * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
7705         calls as pure.
7706
7707 2007-05-16  Eric Christopher  <echristo@apple.com>
7708
7709         * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
7710         saving after stack push. Set sp_offset whenever we push.
7711         (rs6000_emit_epilogue): Move altivec register restore before
7712         stack push.
7713
7714 2007-05-16  Richard Sandiford  <richard@codesourcery.com>
7715
7716         * configure.ac: Allow sysroots to be relocated under $prefix as
7717         well as $exec_prefix.
7718         * configure: Regenerate.
7719
7720 2007-05-16  Richard Sandiford  <richard@codesourcery.com>
7721
7722         Revert:
7723
7724         2007-05-12  Richard Sandiford  <richard@codesourcery.com>
7725
7726         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
7727         (gcc_tooldir): Likewise.
7728         * configure: Regenerate.
7729         * Makefile.in (libsubdir_to_prefix): New variable, based on the
7730         old configure.ac gcc_tooldir setting.
7731         (prefix_to_exec_prefix): New variable.
7732         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
7733         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
7734
7735 2007-05-14  Janis Johnson  <janis187@us.ibm.com>
7736
7737         * c-typeck.c (build_binary_op): Return early for error.
7738
7739 2007-05-15  Zdenek Dvorak  <dvorakz@suse.cz>
7740
7741         * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
7742         struct nb_iter_bound.
7743         (free_numbers_of_iterations_estimates_loop): Use ggc_free.
7744         * gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
7745         * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
7746         * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
7747         (struct scev_info_str, scalar_evolution_info): Add GTY markers.
7748         (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
7749         (del_scev_info): Use ggc_free.
7750         (scev_initialize): Allocate scalar_evolution_info in gc memory.
7751         * loop-init.c: Include ggc.h.
7752         (loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
7753         (loop_optimizer_finalize): Use ggc_free.
7754         * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
7755         pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
7756         pass_iv_optimize): Add TODO_ggc_collect.
7757         * function.h (struct function): Remove skip marker from
7758         x_current_loops.
7759         * cfgloop.c: Include ggc.h.
7760         (flow_loops_free, flow_loop_free): Free the loop descriptions in gc
7761         memory.
7762         (establish_preds): Vector superloops is gc allocated.
7763         (alloc_loop): Allocate loop using GGC_CNEW.  Allocate head of
7764         loop->exits list.
7765         (flow_loops_find): Vector larray is gc allocated.
7766         (loop_exit_free): Use ggc_free.
7767         (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit.  Reflect
7768         that head of exits list is now not a part of struct loop.
7769         (record_loop_exits): Allocate exits table in gc memory.
7770         (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect
7771         that head of exits list is now not a part of struct loop.
7772         * cfgloop.h (struct lpt_decision, struct nb_iter_bound,
7773         struct loop_exit): Add GTY marker.
7774         (struct loop): Add GTY marker.  Make superloops vector gc allocated.
7775         Add skip marker to aux field.  Make head of exits list a separate
7776         object.
7777         (struct loops): Add GTY marker.  Make larray vector gc allocated.
7778         Add param marker to exits table.
7779         (get_loops): Type changed.
7780         * Makefile.in (tree-scalar-evolution.o): Add
7781         gt-tree-scalar-evolution.h dependency.
7782         (cfgloop.o, loop-init.o): Add ggc.h dependency.
7783         (GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
7784         * basic-block.h (struct basic_block_def): Remove skip marker from
7785         loop_father field.
7786
7787 2007-05-14  Uros Bizjak  <ubizjak@gmail.com>
7788
7789         * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
7790         of 0 in the call to expand_expr().
7791         (expand_builtin_mathfn_3): Ditto.
7792         (expand_builtin_interclass_mathfn): Ditto.
7793         (expand_builtin_cexpi): Ditto.
7794         (expand_builtin_int_roundingfn): Ditto.
7795         (expand_builtin_int_roundingfn_2): Ditto.
7796         (expand_builtin_pow): Ditto.
7797         (expand_builtin_powi): Ditto.
7798         (expand_builtin_bswap): Ditto.
7799         (expand_builtin_unop): Ditto.
7800         (expand_builtin_fabs): Ditto.
7801         (get_builtin_sync_mem): Use NULL_RTX instead of NULL in
7802         the call to expand_expr().
7803         (expand_builtin_sync_operation): Ditto.
7804         (expand_builtin_compare_and_swap): Ditto.
7805         (expand_builtin_lock_test_and_set): Ditto.
7806         * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
7807         instead of 0 in the call to expand_expr().
7808         (expand_builtin_extract_return_addr): Ditto.
7809         (expand_builtin_eh_return): Ditto.
7810         (expand_eh_return): Ditto.
7811         * explow.c (expr_size): Ditto.
7812         * expr.c (optimize_bitfield_assignment_op): Ditto.
7813         (expand_assignement): Ditto.
7814         (store_expr): Ditto.
7815         (store_field): Ditto.
7816         (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
7817         the call to expand_expr().
7818         (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
7819         in the call to expand_expr().
7820         [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
7821         BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
7822         [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
7823         of expand_expr().
7824         * optabs.c (expand_vec_shift_expr): Ditto.
7825         (expand_vec_cond_expr): Ditto.
7826         (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
7827         call to expand_expr().
7828         * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
7829         in the call to expand_expr().
7830
7831 2007-05-14  Dave Korn  <dave.korn@artimi.com>
7832
7833         * genautomata.c (gen_regexp_el):  Allocate correct size for regexp.
7834
7835 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
7836
7837         * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
7838         instead of c_common_unsigned_type.
7839         (c_common_unsigned_type): Remove.
7840         (shorten_compare): Use c_common_signed_or_unsigned_type instead of
7841         c_common_unsigned_type.
7842         (c_common_nodes_and_builtins): Use unsigned_type_for instead of
7843         c_common_unsigned_type.
7844         * c-common.h (c_common_unsigned_type): Remove.
7845         * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
7846         c_common_unsigned_type.
7847         * c-format.c (check_format_types): Use unsigned_type_for instead of
7848         c_common_unsigned_type.
7849         * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
7850         * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead
7851         of c_common_unsigned_type.
7852         * convert.c (convert_to_integer): Use unsigned_type_for instead of
7853         lang_hooks.types.unsigned_type.
7854         * expmed.c (make_tree): Use unsigned_type_for instead of
7855         lang_hooks.types.unsigned_type.
7856         * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
7857         lang_hooks.types.unsigned_type.
7858         (build_range_check): Likewise.
7859         (fold_unary): Likewise.
7860         (fold_binary): Likewise.
7861         (fold_ternary): Likewise.
7862         * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
7863         * langhooks.h (lang_hooks_for_types): Remove unsigned_type.
7864         * tree.c (get_unsigned_type): New.
7865         (unsigned_type_for): Use get_unsigned_type instead of
7866         lang_hooks.types.unsigned_type.
7867
7868 2007-05-14  Kazu Hirata  <kazu@codesourcery.com>
7869
7870         * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
7871         to m68k_get_function_kind.  Update its prototype.
7872         * config/m68k/m68k.c (m68k_attribute_table): Add an entry for
7873         interrupt_thread.
7874         (m68k_interrupt_function_p): Return enum m68k_function_type
7875         instead of bool.  Rename to m68k_get_function_kind.
7876         (m68k_handle_fndecl_attribute): Reject interrupt_thread if the
7877         target is not fido.
7878         (m68k_compute_frame_layout): Don't mark any register for save
7879         if an interrupt_thread attribute is specified.
7880         (m68k_hard_regno_rename_ok): Update a use of
7881         m68k_interrupt_function_p.
7882         * config/m68k/m68k.h (EPILOGUE_USES): Update a use of
7883         m68k_interrupt_function_p.
7884         (m68k_function_type): New.
7885         * config/m68k/m68k.md (*return): Output a 'sleep' instruction
7886         for a function with an interrupt_thread attribute.
7887         * doc/extend.texi: Document the interrupt_thread attribute.
7888
7889 2007-05-13  Daniel Berlin  <dberlin@dberlin.org>
7890
7891         Fix PR tree-optimization/31911
7892         * tree-ssa-pre.c (phi_translate): Make sure to cache results even
7893         if they didn't change the expression.
7894
7895 2007-05-13  Zdenek Dvorak  <dvorakz@suse.cz>
7896
7897         * tree-scalar-evolution.c (resolve_mixers): Exported.
7898         * tree-scalar-evolution.h (resolve_mixers): Declare.
7899         * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
7900         ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
7901         record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
7902         base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
7903         init_array_ref, init_pointer_ref, analyze_indirect_ref,
7904         strip_conversion, analyze_offset_expr, address_analysis,
7905         object_analysis, analyze_offset): Removed.
7906         (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
7907         split_constant_offset, canonicalize_base_object_address,
7908         object_address_invariant_in_loop_p, disjoint_objects_p,
7909         dr_may_alias_p, dr_address_invariant_p): New functions.
7910         (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
7911         and dr_analyze_alias.
7912         (initialize_data_dependence_relation): Use dr_may_alias_p
7913         and object_address_invariant_in_loop_p.
7914         (compute_self_dependence): Handle the case when
7915         DDR_ARE_DEPENDENT (ddr) is chrec_dont_know.
7916         (find_data_references_in_stmt): Restrict the analysis of data
7917         references to the given loop nest.
7918         (find_data_references_in_loop): Made static.  Pass loop nest to
7919         find_data_references_in_stmt.
7920         (compute_data_dependences_for_loop): Use DR_VOPS.
7921         (free_data_ref): Free DR_VOPS.
7922         * tree-data-ref.h (struct first_location_in_loop): Replaced by ...
7923         (struct innermost_loop_behavior): ... new.
7924         (struct base_object_info): Replaced by ...
7925         (struct indices): ... new.
7926         (struct dr_alias): New.
7927         (enum data_ref_type): Removed.
7928         (struct data_reference): Consist of struct innermost_loop_behavior,
7929         struct indices and struct dr_alias.
7930         (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
7931         (DR_MEMTAG): Renamed to ...
7932         (DR_SYMBOL_TAG): ... this.
7933         (find_data_references_in_loop): Declaration removed.
7934         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
7935         instead of DR_OFFSET_MISALIGNMENT.  DR_ALIGNED_TO is never NULL.
7936         (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
7937         * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
7938
7939 2007-05-13  Revital Eres  <eres@il.ibm.com>
7940
7941         * tree-ssa-dse.c (get_use_of_stmt_lhs): New function
7942         which walks virtual def-use chains to find redundant stores.
7943         (dse_optimize_stmt): Call it.
7944
7945 2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>
7946
7947         * gcse.c (gcse_main): Do jump bypassing in CPROP2.
7948         * passes.c (init_optimization_passes): Move pass_jump_bypass
7949         after loop2.
7950
7951         * basic-block.h (bb_has_eh_pred): Fix style issue.
7952
7953 2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>
7954
7955         PR rtl-optimization/31848
7956         * loop-invariant.c (move_invariant_reg): If we move an insn
7957         with a REG_EQUAL note, and that insn is not always executed,
7958         remove the REG_EQUAL note.
7959
7960 2007-05-12  Richard Guenther  <rguenther@suse.de>
7961
7962         PR tree-optimization/31797
7963         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
7964         propagate into a stmt that has volatile ops.
7965
7966 2007-05-12  Richard Sandiford  <richard@codesourcery.com>
7967
7968         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
7969         (gcc_tooldir): Likewise.
7970         * configure: Regenerate.
7971         * Makefile.in (libsubdir_to_prefix): New variable, based on the
7972         old configure.ac gcc_tooldir setting.
7973         (prefix_to_exec_prefix): New variable.
7974         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
7975         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
7976
7977 2007-05-11  Silvius Rus  <rus@google.com>
7978
7979         * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o.
7980         * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic.
7981         * c-common.h (strict_aliasing_warning): Change return type.
7982         * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing.
7983         * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning.
7984         (build_c_cast): Condition call to strict_aliasing_warning.
7985         * doc/invoke.texi: Update description of -Wstrict-aliasing[=n].
7986         * flags.h (set_Wstrict_aliasing): Declare.
7987         * opts.c (set_Wstrict_alising): Define, add call to.
7988         * tree-flow.h (strict_aliasing_warning_backend): Declare.
7989         * tree-ssa-alias-warnings.c: New file.
7990         * tree-ssa-alias.c (compute_may_aliases): Add call to
7991         strict_aliasing_warning_backend.
7992
7993 2007-05-11  Zdenek Dvorak  <dvorakz@suse.cz>
7994
7995         * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
7996         Use loop_depth and loop_outer accessor functions.
7997         * tree-ssa-loop-im.c (outermost_invariant_loop, set_level,
7998         determine_invariantness_stmt, move_computations_stmt): Ditto.
7999         * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path,
8000         add_loop, loopify, unloop, fix_loop_structure): Ditto.
8001         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto.
8002         * tree-scalar-evolution.c (interpret_loop_phi,
8003         compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop,
8004         instantiate_parameters_1, scev_const_prop): Ditto.
8005         * cfghooks.c (make_forwarder_block): Ditto.
8006         * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
8007         * modulo-sched.c (loop_canon_p): Ditto.
8008         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
8009         slpeel_can_duplicate_loop_p): Ditto.
8010         * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto.
8011         * tree-cfg.c (tree_duplicate_sese_region): Ditto.
8012         * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit,
8013         cancel_loop, verify_loop_structure): Ditto.
8014         (flow_loop_nested_p, superloop_at_depth, flow_loop_free,
8015         add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the
8016         superloops vector instead of "pred" array.
8017         (establish_preds): Take father loop as an argument.  Initialize the
8018         superloops vector.
8019         (flow_loop_tree_node_add): Pass father loop to establish_preds.
8020         Do not initialize loop->outer.
8021         (flow_loop_tree_node_remove): Truncate the superloops vector.
8022         * cfgloop.h (struct loop): Removed field "outer", fields "depth" and
8023         "pred" merged to "superloops" vector.
8024         (loop_depth, loop_outer): New.
8025         (fel_init): Use loop_outer.
8026
8027 2007-05-11  Jan Hubicka  <jh@suse.cz>
8028
8029         * cgraphunit.c: Include gt-cgraphunit.h
8030         (static_ctors, static_dtors): New static vars.
8031         (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions,
8032         based on implementation in c-common.c
8033         (cgraph_finalize_function): Call record_cdtor_fn.
8034         (cgraph_optimize): Call cgraph_build_cdtor_fns.
8035         * decl.c (finish_function): Do not call c_record_cdtor_fn.
8036         (c_write_global_declarations): Do not call c_build_cdtor_fns.
8037         * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn,
8038         build_cdtor, c_build_cdtor_fns): Remove.
8039         * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn,
8040         c_build_cdtor_fns): Remove prototype.
8041
8042 2007-05-11  Paolo Carlini  <pcarlini@suse.de>
8043
8044         PR other/31852
8045         * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE.
8046         * builtins.def: Add BUILT_IN_MEMCHR, use the latter.
8047         * builtins.c (fold_builtin_memchr): New.
8048         (expand_builtin_memchr): Call the latter.
8049         (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR.
8050         * doc/extend.texi ([Other built-in functions provided by GCC]):
8051         Document memchr.
8052
8053 2007-05-11  Andreas Krebbel  <krebbel1@de.ibm.com>
8054
8055         * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM,
8056         PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF,
8057         PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT,
8058         PFPO_OP1_TYPE_SHIFT): Constants added.
8059         (DFP_ALL): Mode macro defined.
8060         ("*trunc<BFP:mode><DFP_ALL:mode>2", "*trunc<DFP_ALL:mode><BFP:mode>2",
8061         "*extend<BFP:mode><DFP_ALL:mode>2", "*extend<DFP_ALL:mode><BFP:mode>2"):
8062         Insn definitions added.
8063         ("trunc<BFP:mode><DFP_ALL:mode>2", "trunc<DFP_ALL:mode><BFP:mode>2",
8064         "extend<BFP:mode><DFP_ALL:mode>2", "extend<DFP_ALL:mode><BFP:mode>2"):
8065         Expanders added.
8066
8067 2007-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
8068
8069         PR tree-optimization/31885
8070         * tree-chrec.c (chrec_contains_undetermined): Do not consider
8071         NULL_TREE to be undetermined.
8072         (automatically_generated_chrec_p): Return false for NULL.
8073
8074 2007-05-08  Bernd Schmidt  <bernd.schmidt@analog.com>
8075
8076         * config/bfin/bfin.h (MOVE_RATIO): Define.
8077
8078 2007-05-10  Richard Sandiford  <richard@codesourcery.com>
8079
8080         * config.gcc (sparc-wrs-vxworks): New target.
8081         * config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
8082         * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
8083         * config/sparc/sparc.h: Include vxworks-dummy.h.
8084         (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
8085         include LABEL_REFs too.
8086         * config/sparc/sparc.c (sparc_expand_move): Don't assume that
8087         _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
8088         VxWorks.
8089         (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
8090         on VxWorks.
8091         (load_pic_register): Use gen_vxworks_load_got for VxWorks.
8092         (sparc_emit_call_insn): New function.
8093         (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
8094         functions when generating VxWorks PIC.
8095         * config/sparc/sparc.md (vxworks_load_got): New pattern.
8096         (call, call_value): Use sparc_emit_call_insn instead of
8097         emit_call_insn.
8098
8099 2007-05-09  Bob Wilson  <bob.wilson@acm.org>
8100
8101         * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if.
8102
8103 2007-05-09  Bob Wilson  <bob.wilson@acm.org>
8104
8105         * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
8106         for floating-point values if HOST_BITS_PER_LONG > 32.  Use
8107         split_double instead of operand_subword.
8108
8109 2007-05-08  Bernd Schmidt  <bernd.schmidt@analog.com>
8110
8111         * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define.
8112         * config/bfin/bfin.c (bfin_local_alignment): New function.
8113         * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it.
8114
8115 2007-05-08  Chao-ying Fu  <fu@mips.com>
8116
8117         * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.
8118         * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes.
8119         (smsub_widen_optab, umsub_widen_optab): Define.
8120         * optabs.c (init_optabs): Initialize smsub_widen_optab and
8121         umsub_widen_optab.
8122         * genopinit.c (optabs): Fill in smsub_widen_optab and
8123         umsub_widen_optab.
8124         * expr.c (expand_expr_real_1): Try to use smsub_widen_optab
8125         and umsub_widen_optab to implement multiply-subtract sequences.
8126         * config/mips/mips.md (*msac<u>_di): Rename to...
8127         (<u>msubsidi4): ...this.  Extend condition to include
8128         GENERATE_MADD_MSUB and TARGET_DSPR2.  Change the constraint
8129         of operand 0 to "ka" and use the three-operand form of msub<u>
8130         for TARGET_DSPR2.
8131         * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert
8132         to define_expands.
8133
8134 2007-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
8135
8136         PR rtl-optimization/28011
8137         * reload.c (push_reload): Set dont_share if IN appears in OUT
8138         also when IN is a PLUS rtx.
8139         (reg_overlap_mentioned_for_reload_p): Return true if X and IN
8140         are same PLUS rtx.
8141
8142 2007-05-08  Kazu Hirata  <kazu@codesourcery.com>
8143
8144         * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL.  Don't
8145         call unshare_all_decls.
8146         (unshare_all_rtl): Adjust the call to unshare_all_rtl_1.
8147         (unshare_all_decls): Remove.
8148
8149 2007-05-08  Simon Martin  <simartin@users.sourceforge.net>
8150
8151         PR 31847
8152         * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
8153         dumps.
8154
8155 2007-05-08  Sandra Loosemore  <sandra@codesourcery.com>
8156             Nigel Stephens  <nigel@mips.com>
8157
8158         * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC.
8159         Update comments and all uses.
8160         (MIN_FPRS_PER_FMT): Define.
8161         * config/mips/mips.c (function_arg): Fix to correctly handle
8162         the -mips32r2 -mfp64 -mabi=32 case.
8163         (override_options): Enable use of odd-numbered registers for
8164         SFmode values on MIPS32.
8165         (mips_save_reg_p): Save whole floating-point register pair if
8166         either half is used.
8167         (compute_frame_size): Fix comment.
8168
8169 2007-05-08  Jie Zhang  <jie.zhang@analog.com>
8170
8171         * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third
8172         argument of type bool.
8173         * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth
8174         argument. Safely select temporary P register according to it.
8175         (do_link): Change call site of add_to_reg accordingly.
8176         (do_unlink): Add epilogue_p as a fourth argument and pass it
8177         to add_to_reg.
8178         (expand_interrupt_handler_epilogue): Change call of do_unlink
8179         accordingly.
8180         (bfin_expand_prologue): Add a third argument sibcall_p.
8181         * config/bfin/bfin.md (epilogue): Change call of
8182         bfin_expand_epilogue accordingly.
8183         (sibcall_epilogue): Likewise.
8184         (eh_return_internal): Likewise.
8185
8186         * config/bfin/bfin-protos.h (enum bfin_cpu): Add
8187         BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561.
8188         * config/bfin/bfin.c (bfin_handle_option): Handle
8189         -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561.
8190         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS):
8191         Support bf534, bf536 and bf561.
8192         * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim.
8193
8194 2007-05-08  Uros Bizjak  <ubizjak@gmail.com>
8195
8196         PR target/31854
8197         * config/i386/i386.c (ix86_function_regparm): Process local
8198         functions only when TREE_CODE (decl) equals FUNCTION_DECL.
8199
8200 2007-05-07  Mike Stump  <mrs@apple.com>
8201
8202         * doc/invoke.texi (Warning Options): Document that -Wempty-body
8203         also checks for and while statements in C++.
8204
8205 2007-05-07  Nathan Froyd  <froydnj@codesourcery.com>
8206
8207         * gcc.c (at_file_supplied): New variable.
8208         (main): Set it if we expanded argv.
8209         (do_spec_1): Pass an @-file to the linker if we were called with
8210         an @-file argument and HAVE_GNU_LD.
8211         * collect2.c (at_file_supplied): New variable.
8212         (response_file): New variable.
8213         (collect_exit): Unlink response_file if necessary.
8214         (handler): Likewise.
8215         (do_wait): Likewise.
8216         (main): Set at_file_supplied if we expanded argv.
8217         (collect_execute): Pass an @-file to subprocesses if we were called
8218         with an @-file argument.
8219         * configure.ac: Add define for HAVE_GNU_LD.
8220         * configure: Regenerate.
8221         * config.in: Regenerate.
8222
8223 2007-05-07  Naveen.H.S  <naveen.hs@kpitcummins.com>
8224
8225         * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd
8226         operand to HI mode.
8227         (mulsi3): New.
8228         (divsi3): New.
8229         (udivsi3): New.
8230
8231 2007-05-07  Jayant Sonar  <jayants@kpitcummins.com>
8232
8233         * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
8234         (TARGET_ENCODE_SECTION_INFO): Re-define.
8235         (m32c_encode_section_info): New
8236         (function_vector_handler): New
8237         (current_function_special_page_vector): New
8238         (m32c_special_page_vector_p): New.
8239         * config/m32c/m32c-protos.h (m32c_special_page_vector_p):
8240         Prototype.
8241         * config/m32c/jump.md: Added instruction JSRS for functions
8242         with attribute "function_vector".
8243         * doc/extend.texi (function_vector): Added description
8244         for M16C, M32C targets.
8245
8246 2007-05-07  DJ Delorie  <dj@redhat.com>
8247
8248         PR 31794
8249         * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3,
8250         ashrpsi3, lshrpsi3): Update shift count constraint.
8251
8252 2007-05-07  Danny Smith  <dannysmith@users.sourceforge.net>
8253             Nathan Froyd  <froydnj@codesourcery.com>
8254
8255         PR 22133
8256         * c-incpath.c (add_path): Strip trailing path separators.
8257
8258 2007-05-07  Eric Botcazou  <ebotcazou@adacore.com>
8259
8260         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered.
8261         Free dominance info before purging EH edges.
8262         (eliminate_degenerate_phis): Likewise.
8263         (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1.
8264
8265 2007-05-07  Jan Hubicka  <jh@suse.cz>
8266
8267         * gimplify.c (gimplify_expr): Do not crash when folding
8268         (void *)(int)&a + 4.
8269
8270 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8271
8272         PR driver/31694
8273         * c-opts.c (lang_fortran): Make it non static.
8274         * c-common.h (lang_fortran): New prototype.
8275         * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the
8276         -lang-fortran option was passed by the driver.
8277
8278 2007-05-06  Eric Botcazou  <ebotcazou@adacore.com>
8279
8280         * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead
8281         of ASSERT_CHECKING.  Tweak message.
8282
8283 2007-05-06  Revital Eres  <eres@il.ibm.com>
8284
8285         PR 30957
8286         * loop-unroll.c (insert_var_expansion_initialization):
8287         Initialize the expansions with -zero instead of +zero.
8288
8289 2007-05-05  Aurelien Jarno  <aurelien@aurel32.net>
8290
8291         * config/pa/pa.md: Split tgd_load, tld_load and tie_load
8292         into pic and non-pic versions. Mark r19 as used for
8293         tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used
8294         for tgd_load, tld_load and tie_load .
8295         * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
8296         version of tgd_load, tld_load and tie_load depending on the
8297         value of flag_pic.
8298
8299 2007-05-04  Ulrich Drepper  <drepper@redhat.com>
8300             Jakub Jelinek  <jakub@redhat.com>
8301
8302         * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
8303         (__do_global_dtors_aux): Use more paranoid loop to run
8304         destructors if HIDDEN_DTOR_LIST_END.
8305         (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.
8306
8307 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
8308
8309         * varasm.c (align_variable): Don't increase alignment for
8310         DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
8311         DATA_ALIGNMENT or CONSTANT_ALIGNMENT.
8312
8313 2007-05-04  Josh Conner  <jconner@apple.com>
8314
8315         * basic-block.h (cdi_direction): Assign values to all enumeration
8316         constants.
8317         (dom_computed): Remove.
8318         (dom_info_state): New.
8319         (set_dom_info_availability): New.
8320         * tree-ssa-loop-im.c (determine_invariantness): Initialize
8321         walk_data.dom_direction.
8322         * cfghooks.c (delete_basic_block): Use dom_info_available_p()
8323         instead of dom_computed[].
8324         (split_edge): Likewise.
8325         (create_basic_block): Likewise.
8326         (merge_blocks): Likewise.
8327         * ifcvt.c (find_if_header): Likewise.
8328         * tree-cfgcleanup.c (cleanup_tree_cfg): Likewise.
8329         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
8330         * tree-ssa.c (verify_ssa): Likewise.
8331         * tree-cfg.c (tree_verify_flow_info): Likewise.
8332         (remove_edge_and_dominated_blocks): Likewise.
8333         * dominance.c (dom_computed): Make static.
8334         (calc_dfs_tree_nonrec): Change third param to a bool.
8335         (calc_dfs_tree): Change second param to a bool.
8336         (calc_idioms): Change second param to a bool.  Use
8337         dom_convert_dir_to_idx.
8338         (init_dom_info): Validate dir before using.
8339         (dom_convert_dir_to_idx): New.
8340         (calculate_dominance_info): Use dom_convert_dir_to_idx.  New
8341         variable 'reverse' used for calling calc_dfs_tree and calc_idoms.
8342         (free_dominance_info): Use dom_convert_dir_to_idx.
8343         (get_immediate_dominator): Likewise.
8344         (set_immediate_dominator): Likewise.
8345         (get_dominated_by): Likewise.
8346         (redirect_immediate_dominators): Likewise.
8347         (nearest_common_denominator): Likewise.
8348         (dominated_by_p): Likewise.
8349         (bb_dom_dfs_in): Likewise.
8350         (bb_dom_dfs_out): Likewise.
8351         (recount_dominator): Likewise.
8352         (iterate_fix_dominators): Likewise.
8353         (add_to_dominance_info): Likewise.
8354         (delete_from_dominance_info): Likewise.
8355         (first_dom_son): Likewise.
8356         (next_dom_son): Likewise.
8357         (dom_info_available_p): Likewise.
8358         (dom_info_state): New.
8359         (set_dom_info_availability): New.
8360
8361 2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>
8362
8363         * config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
8364         Expander removed.
8365         ("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.
8366
8367 2007-05-04  Bob Wilson  <bob.wilson@acm.org>
8368
8369         * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete.
8370         (subdi3, subdi_carry): Delete.
8371
8372 2007-05-04  Jan Hubicka  <jh@suse.cz>
8373             Richard Guenther  <rguenther@suse.de>
8374
8375         * opts.c (decode_options): Do not fiddle with inlining
8376         parameters in case of optimizing for size.
8377         * ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing
8378         for size do nothing.
8379         (cgraph_decide_inlining_of_small_function): When optimizing for
8380         size never inline functions increasing caller size.
8381         (cgraph_early_inlining): Inline for size when optimizing for size.
8382
8383 2007-05-04  Bernd Schmidt  <bernd.schmidt@analog.com>
8384
8385         * config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
8386         logical operations piecewise.
8387         (<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2,
8388         zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi,
8389         subdi_sesidi_di): Delete.
8390         (add_with_carry): Produce carry in CC instead of a DREG to shorten
8391         the generated sequence.  Allow three-reg add in constraints.  Rewrite
8392         the rtl expression for carry to avoid zero_extend of a constant.
8393         (sub_with_carry): New pattern.
8394         (adddi3, subdi3): Change into define_expand.  For subtract, generate a
8395         different sequence not involving jumps.
8396         (notbi): Now a named pattern.
8397
8398 2007-05-04  Bradley Lucier  <lucier@math.purdue.edu>
8399
8400         * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
8401         Add the note about a significant loss of accuracy of some
8402         mathematical routines when these options are used.
8403
8404 2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
8405
8406         * haifa-sched.c (rtx_vec_t): New typedef.
8407         (contributes_to_priority_p): Extract piece of priority () into new
8408         static function.
8409         (priority): Use the function.  Add assertion.
8410         (rank_for_schedule, set_priorities): Add assertion to check that
8411         insn's priority is initialized.
8412         (clear_priorities, calc_priorities): Change signature.  Make it update
8413         all relevant insns.  Update all callers ('add_to_speculative_block ()'
8414         and 'create_block_check_twin ()').
8415         * sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
8416         Add new field 'priority_status'.
8417         (INSN_PRIORITY_STATUS): New macro.
8418         (INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.
8419
8420 2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
8421
8422         * sched-ebb.c (debug_ebb_dependencies): New static function.
8423         (init_ready_list): Use it.
8424
8425         * sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()'
8426         with changed signature and 'debug_rgn_dependencies ()'.
8427         (debug_rgn_dependencies): New static function.
8428         (init_ready_list): Use it.
8429
8430         * sched-int.h (debug_dependencies): Declare.
8431
8432 2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>
8433
8434         * libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section.
8435
8436 2007-05-04  Dirk Mueller  <dmueller@suse.de>
8437
8438         * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++.
8439
8440 2007-05-03  Jan Hubicka  <jh@suse.cz>
8441
8442         * fold-const.c (fold_unary): Convert (T1)(X op Y) into
8443         ((T1)X op (T1)Y), for pointer type in more cases than before.
8444
8445         * gimplify.c (gimplify_expr): Fold (void *)&a + 4.
8446
8447         * tree-object-size.c (plus_expr_object_size): When operand size is
8448         unknown, return unknown.
8449
8450 2007-05-03  Dirk Mueller  <dmueller@suse.de>
8451
8452         * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove.
8453
8454         * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated
8455         options.
8456
8457         * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove.
8458
8459 2007-05-03  Janis Johnson  <janis187@us.ibm.com>
8460
8461         * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors.
8462
8463 2007-05-03  Joseph Myers  <joseph@codesourcery.com>
8464
8465         * config/soft-fp/double.h, config/soft-fp/extended.h,
8466         config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
8467         config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
8468         config/soft-fp/op-2.h, config/soft-fp/op-4.h,
8469         config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
8470         glibc CVS.
8471
8472 2007-05-03  Ian Lance Taylor  <iant@google.com>
8473
8474         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
8475         MASK_PPC_GFXOPT for 8540 or 8548.
8476
8477 2007-05-03  Uros Bizjak  <ubizjak@gmail.com>
8478
8479         * tree-vect-transform.c (vect_update_inits_of_drs): Use
8480         vect_print_dump_info() to output debug information.
8481
8482 2007-05-03  Uros Bizjak  <ubizjak@gmail.com>
8483
8484         PR target/31768
8485         * config/i386/i386.c (print_operand) ['z']: Output 'w' for
8486         operands of size 2 when operand is not MEM_P.
8487
8488 2007-05-03  Zdenek Dvorak  <dvorakz@suse.cz>
8489
8490         PR tree-optimization/30565
8491         * lambda-code.c (perfect_nestify): Fix updating of dominators.
8492
8493 2007-05-03  Bernd Schmidt  <bernd.schmidt@analog.com>
8494
8495         * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns.
8496         (umulsi3_highpart): Use them.
8497         * config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move
8498         for final accumulator to D regisster tranfser.
8499
8500 2007-05-03  Dorit Nuzman  <dorit@il.ibm.com>
8501
8502         PR tree-optimization/31699
8503         * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove
8504         wrong code.
8505         (vect_enhance_data_refs_alignment): Compute peel amount using
8506         TYPE_VECTOR_SUBPARTS instead of vf.
8507         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise.
8508
8509 2007-05-02  Brooks Moses  <brooks.moses@codesourcery.com>
8510
8511         PR bootstrap/31776
8512         * system.h: Remove inclusion of double-int.h
8513         * tree.h: Include double-int.h
8514         * gengtype.c: Likewise
8515         * cfgloop.h: Likewise
8516         * Makefile.in: Adjust dependencies on double-int.h
8517
8518 2007-05-02  Eric Christopher  <echristo@apple.com>
8519
8520         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate
8521         -shared to -Zdynamiclib.
8522
8523 2007-05-02  Seongbae Park  <seongbae.park@gmail.com>
8524
8525         PR c++/31663
8526         * c-common.c (strip_pointer_or_array_types): New function.
8527         * c-common.h (strip_pointer_or_array_types): New function declaration.
8528
8529 2007-05-03  Zdenek Dvorak  <dvorakz@suse.cz>
8530
8531         PR tree-optimization/31771
8532         * tree-cfg.c (move_block_to_fn): Assign bb to the correct index.
8533
8534 2007-05-02  Paul Brook  <paul@codesourcery.com>
8535
8536         * config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow.
8537
8538 2007-05-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8539
8540         PR middle-end/29715
8541         * fold-const.c (fold_comparision): Remove the "foo++ == CONST"
8542         transformation.
8543
8544 2007-05-02  Nick Clifton  <nickc@redhat.com>
8545
8546         * config/frv/predicates.md (symbolic_operand): Accept CONSTs.
8547
8548 2007-05-02  Richard Guenther  <rguenther@suse.de>
8549
8550         PR tree-optimization/31146
8551         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
8552         argument, single_use_p.  If we have a single use that is
8553         a conversion to the definition rhs type, propagate that rhs.
8554         (forward_propagate_addr_expr): Pass single_use_p argument
8555         to forward_propagate_addr_expr_1.
8556
8557 2007-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8558
8559         * config/i386/i386.c (ix86_expand_sse_comi): Remove unused
8560         variable.
8561
8562 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
8563
8564         * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of
8565         'AMD Family 10 core'.
8566
8567 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
8568
8569         * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3
8570         and athlon64-sse3 as improved versions of k8, opteron and athlon64
8571         with SSE3 instruction set support.
8572         * doc/invoke.texi: Likewise.
8573
8574 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
8575
8576         * config/i386/i386.c (override_options): Tuning 32-byte loop
8577         alignment for amdfam10 architecture. Increasing the max loop
8578         alignment to 24 bytes.
8579
8580 2007-05-01  Kazu Hirata  <kazu@codesourcery.com>
8581
8582         * config/m68k/constraints.md: New.
8583         * config/m68k/m68k.h (REG_CLASS_FROM_LETTER,
8584         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
8585         EXTRA_CONSTRAINT): Remove.
8586         * config/m68k/m68k.md: Include constraints.md.
8587         * expr.c (expand_expr_real_1): Copy DECL_RTL before using it.
8588
8589 2007-05-01  Ian Lance Taylor  <iant@google.com>
8590
8591         PR tree-optimization/31739
8592         * tree-vrp.c (vrp_val_is_max): New static function.
8593         (vrp_val_is_min): New static function.
8594         (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
8595         copying the node.
8596         (set_value_range): Use vrp_val_is_{max,min}.
8597         (extract_range_from_assert): Likewise.
8598         (extract_range_from_binary_expr): Likewise.
8599         (extract_range_from_unary_expr): Likewise.
8600         (dump_value_range, vrp_meet): Likewise.
8601         (vrp_visit_phi_node): Likewise.
8602         * tree.c (build_distinct_type_copy): Revert change of 2007-04-27.
8603
8604 2007-05-01  Mark Mitchell  <mark@codesourcery.com>
8605
8606         * config/i386/gmon-sol2.c (size_t): New type.
8607         (intptr_t): Likewise.
8608         (s_textsize): Declare as size_t.
8609         (sbrk): Declare.
8610         (monstartup): Use size_t for sizes.
8611         (_mcount): Save and restore registers.
8612         (internal_mcount): Pass 0 as the first argument to monstartup
8613         in 64-bit mode.
8614         (moncontrol): Convert pointer to appropriately sized integer
8615         before passing to profil.
8616
8617 2007-05-01  Joseph Myers  <joseph@codesourcery.com>
8618
8619         * config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if
8620         __NO_FPRS__, not just if _SOFT_DOUBLE.
8621         * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise.
8622         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord
8623         also for E500 double.
8624         * config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt,
8625         suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT
8626         && !TARGET_FPRS).
8627
8628 2007-05-01  Richard Guenther  <rguenther@suse.de>
8629
8630         * tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt
8631         is NULL.
8632
8633 2007-05-01  Joseph Myers  <joseph@codesourcery.com>
8634
8635         * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.
8636
8637 2007-05-01  Jan Hubicka  <jh@suse.cz>
8638
8639         * tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is
8640         invariant.
8641
8642 2007-05-01  Jan Hubicka  <jh@suse.cz>
8643
8644         * tree.h (maybe_fold_offset_to_component_ref): Remove.
8645         (maybe_fold_offset_to_reference): Declare.
8646         * fold-const.c (fold_unary): Do not fold
8647         (type *)&A into &A->field_of_type_and_offset_0
8648         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type
8649         size is unknown, give up.
8650         (maybe_fold_offset_to_component_ref): Ignore firelds with unknown
8651         offsets.
8652         (maybe_fold_offset_to_reference): New.
8653         (maybe_fold_stmt_indirect): Use it.
8654         (fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset.
8655         * gimplify.c (gimplify_conversion): Canonicalize conversions to
8656         field references.
8657         (gimplify_expr): Likewise for plus_expr.
8658
8659 2007-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
8660
8661         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use
8662         bsi_after_labels.  Always insert statements before bsi.
8663         * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
8664         * predict.c (apply_return_prediction): Check for empty blocks.
8665         * cfgexpand.c (lab_rtx_for_bb): New variable.
8666         (label_rtx_for_bb): Do not create new tree labels.
8667         (expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb.
8668         (tree_expand_cfg): Initialize lab_rtx_for_bb.
8669         * tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after
8670         creating edges.
8671         (label_for_bb): Add field used.
8672         (update_eh_label, main_block_label): Mark the label used.
8673         (cleanup_dead_labels): Remove unused labels.
8674
8675 2007-05-01  Richard Guenther  <rguenther@suse.de>
8676
8677         * tree-vrp.c (set_value_range): Do not allocate equiv bitmap
8678         if it is not about to be set.
8679         (get_value_range): Do not pre-allocate equiv bitmap.
8680         (update_value_range): No need to clear equiv field.
8681         (add_equivalence): Change prototype to get bitmap pointer.
8682         Allocate bitmap here if it is not already.
8683         (extract_range_from_assert): Do not allocate bitmap here.
8684         Update callers to add_equivalence.
8685         (extract_range_from_ssa_name): Likewise.
8686         (get_vr_for_comparison): New static helper.
8687         (compare_name_with_value): Handle NULL equiv bitmap by
8688         peeling the first iteration of the comparison loop.
8689         Use get_vr_for_comparison.
8690         (compare_names): Handle NULL equiv bitmaps by using fake
8691         ones.  Use get_vr_for_comparison.
8692
8693 2007-04-30  Brooks Moses  <brooks.moses@codesourcery.com>
8694
8695         * double-int.c (mpz_set_double_int): Moved from
8696         tree-ssa-loop-niter.c.
8697         (mpz_get_double_int): Likewise; also, add option to wrap
8698         out-of-range integers.
8699         * double-int.h: New prototypes for above.
8700         * tree.c (get_static_type_bounds): Moved from
8701         tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and
8702         TYPE_MAX_VALUE if they exist..
8703         * tree.h: New prototype for above.
8704         * tree-ssa-loop-niter.c: Adjust mpz_to_double_int and
8705         get_type_bounds calls.
8706         (mpz_set_double_int): Move to double-int.c.
8707         (get_type_bounds): Move to tree.c, rename to
8708         get_static_type_bounds.
8709         (mpz_to_double_int): Move to double-int.c, rename to
8710         mpz_get_double_int.
8711
8712 2007-04-30  Bob Wilson  <bob.wilson@acm.org>
8713
8714         * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that
8715         DIV0 exception can fall through to a normal return.
8716
8717 2007-04-30  Alexandre Oliva  <aoliva@redhat.com>
8718
8719         PR middle-end/22156
8720         Temporarily revert:
8721         2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>
8722         * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
8723         2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
8724         * tree-sra.c (try_instantiate_multiple_fields): Needlessly
8725         initialize align to silence bogus warning.
8726         2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
8727         * tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
8728         all_no_warning.
8729         (struct sra_walk_fns): Remove use_all parameter from use.
8730         (sra_hash_tree): Handle BIT_FIELD_REFs.
8731         (sra_elt_hash): Don't hash bitfld blocks.
8732         (sra_elt_eq): Skip them in parent compares as well.  Handle
8733         BIT_FIELD_REFs.
8734         (sra_walk_expr): Don't maintain or pass down use_all_p.
8735         (scan_use): Remove use_all parameter.
8736         (scalarize_use): Likewise.  Re-expand assignment to
8737         BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
8738         output, and re-scalarize after output.  Don't mark anything
8739         for no warning.
8740         (scalarize_ldst): Adjust.
8741         (scalarize_walk_gimple_modify_statement): Likewise.
8742         (build_element_name_1): Handle BIT_FIELD_REFs.
8743         (instantiate_element): Don't warn for any element whose parent
8744         is used as a whole.
8745         (instantiate_missing_elements_1): Return the sra_elt.
8746         (canon_type_for_field): New.
8747         (try_instantiate_multiple_fields): New.
8748         (instantiate_missing_elemnts): Use them.
8749         (mark_no_warning): Removed.
8750         (generate_one_element_ref): Handle BIT_FIELD_REFs.
8751         (REPLDUP, sra_build_elt_assignment): New.
8752         (generate_copy_inout): Use them.
8753         (generate_element_copy): Likewise.  Handle bitfld differences.
8754         (generate_element_zero): Don't recurse for blocks.  Use
8755         sra_build_elt_assignment.
8756         (generate_one_element_int): Take elt instead of var.  Use
8757         sra_build_elt_assignment.
8758         (generate_element_init_1): Adjust.
8759         (scalarize_use, scalarize_copy): Use REPLDUP.
8760         (scalarize_ldst): Move assert before dereference.
8761         (dump_sra_elt_name): Handle BIT_FIELD_REFs.
8762
8763 2007-04-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8764
8765         PR C++/31721
8766         * tree.c (reconstruct_complex_type): Reconstruct a reference
8767         correctly.
8768         Also use the same mode for the pointer as the old pointer type.
8769
8770 2007-04-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8771
8772         * doc/trouble.texi (Interoperation): Remove note about Ultrix
8773         Fortran compiler.
8774
8775 2007-04-29  Zdenek Dvorak  <dvorakz@suse.cz>
8776
8777         PR rtl-optimization/31676
8778         * df-scan.c (record_nonlocal_goto_receiver_defs): New function.
8779         (df_refs_record): Call it.
8780
8781 2007-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
8782
8783         * rtl.def (SS_ABS): New code.
8784         * config/bfin/bfin.c (print_operand): New modifier 'v'.
8785         (enum bfin_builtins): Add BFIN_BUILTIN_SUM_2X16, BFIN_BUILTIN_ABS_1x32,
8786         BFIN_BUILTIN_ROUND_1x32, BFIN_BUILTIN_MULT_1x32x32,
8787         BFIN_BUILTIN_MULT_1x32x32NS, BFIN_BUILTIN_SSASHIFT_1x32.
8788         (bfin_init_builtins): Define them.
8789         (bdesc_1arg, bdesc_2arg): Add some of them here, ...
8790         (bfin_expand_builtin): ... and handle the others here.
8791         * config/bfin/bfin.md (ssabssi2, ssroundsi2, ssashiftsi3,
8792         flag_mul_macv2hi_parts_acconly_andcc0): New patterns.
8793         (ss_absv2hi2): Renamed from absv2hi; use ss_abs code.
8794         (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3): Shift count
8795         operand is only HImode.
8796
8797 2007-04-29  Steven Bosscher  <steven@gcc.gnu.org>
8798
8799         * regclass.c (scan_one_insn): Remove splitting of
8800         two address insns.
8801
8802 2007-04-28  Sandra Loosemore  <sandra@codesourcery.com>
8803             Nigel Stephens  <nigel@mips.com>
8804
8805         * config/mips/mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16.
8806
8807 2007-04-28  Jan Hubicka  <jh@suse.cz>
8808
8809         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Use
8810         insn_locators_alloc instead of insn_locators_initialize;
8811         call reset_block_changes.
8812         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
8813         * config/sh/sh.c (sparc_output_mi_thunk): Likewise.
8814         * config/is64/ia64.c (ia64_output_mi_thunk): Likewise.
8815         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
8816         * config/score/score.c (th_output_mi_thunk): Likewise.
8817         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
8818         * cfglyaout.c (set_curr_insn_source_location, set_curr_insn_block):
8819         tolerate uninitialized locator info.
8820
8821         Re-apply:
8822         * function.c (init_function_start): Don't init line number info.
8823         (expand_function_end): Update.
8824         (reset_block_changes, record_block_change, finalize_block_changes,
8825         check_block_change, free_block_changes): Kill.
8826         * function.h (reset_block_changes, record_block_change,
8827         finalize_block_changes, check_block_change, free_block_changes):
8828         Remove prototypes.
8829         (struct function): Remove ib_boundaries_block.
8830         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
8831         Use curr_insn_locator to initialize locator.
8832         (emit_line_note): Remove.
8833         * cfgexpand.c (expand_gimple_cond_expr): Update.
8834         (construct_exit_block): Likewise.
8835         (tree_expand_cfg): Initialize/finalize locators.
8836         * expr.c (expand_expr_real): Update.
8837         * cfglayout.c (line_locators_locs, line_locators_lines,
8838         file_locators_locs, file_locators_files): Remove.
8839         (set_block_levels): Move to cfgexpand.c.
8840         (insn_locators_initialize): Remove.
8841         (pass_insn_locators_initialize): Remove.
8842         (locations_locators_locs, locations_locators_vals): New static vars.
8843         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
8844         Likewise.
8845         (insn_locators_alloc, insn_locators_finalize,
8846         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
8847         New functions.
8848         (locator_location): New.
8849         (locator_line, locator_file): Rewrite.
8850         * rtl.h (emit_line_note): Kill.
8851         (insn_locators_alloc, insn_locators_finalize,
8852         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
8853         Declare.
8854         * tree-inline.c (initialize_cfun): Do not initialize
8855         ib_boundaries_block.
8856         * passes.c (pass_insn_locators_initialize): Remove.
8857
8858 2007-04-28  Zdenek Dvorak  <dvorakz@suse.cz>
8859
8860         * tree-cfg.c (move_block_to_fn): Release bb from dominance
8861         info.  Update last_basic_block correctly.
8862
8863 2007-04-27  Kaz Kojima  <kkojima@gcc.gnu.org>
8864
8865         PR target/31701
8866         * config/sh/sh.c (output_stack_adjust): Avoid using the frame
8867         register itself to hold the offset constant.  Tell flow the use
8868         of r4 and r5 when they are used.
8869
8870 2007-04-27  Richard Guenther  <rguenther@suse.de>
8871
8872         * tree-ssa-forwprop.c (forward_propagate_into_cond): Keep track
8873         if we simplified anything.
8874         (tree_ssa_forward_propagate_single_use_vars): Defer overflow
8875         warnings until we did a simplification and the stmt was not
8876         marked as TREE_NO_WARNING.
8877
8878 2007-04-27  Mike Stump  <mrs@apple.com>
8879
8880         * config/rs6000/darwin.h (ALWAYS_PUSH_CONSTS_USING_REGS_P): Remove.
8881
8882 2007-04-27  Ian Lance Taylor  <iant@google.com>
8883
8884         PR middle-end/31710
8885         * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
8886         TYPE_MAX_VALUE exist, convert them to the new type.
8887
8888 2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
8889
8890         * tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info
8891         if it claims to be available.
8892         * tree-ssa-dce.c (remove_dead_stmt): Mark cfg as altered when
8893         edge is redirected.
8894         (perform_tree_ssa_dce): Always free postdominators.
8895
8896 2007-04-27  Richard Henderson  <rth@redhat.com>
8897
8898         * config/alpha/predicates.md (aligned_memory_operand): Mark
8899         as define_special_predicate.
8900         (unaligned_memory_operand, normal_memory_operand): Likewise.
8901         (reg_or_unaligned_mem_operand): Remove.
8902         (any_memory_operand): Match the documentation and check for
8903         non-renumbered pseudos during reload.
8904         * config/alpha/alpha.c (alpha_secondary_reload): Rename from
8905         alpha_secondary_reload_class, update to new interface, make static.
8906         Handle CQImode like HImode.  Remove FP subreg check.
8907         (alpha_expand_mov): Use replace_equiv_address.
8908         (alpha_expand_mov_nobwx): Use any_memory_operand.
8909         (TARGET_SECONDARY_RELOAD): New.
8910         * config/alpha/alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Remove.
8911         (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
8912         * config/alpha/sync.md (I12MODE, I48MODE, modesuffix): Move ...
8913         * config/alpha/alpha.md: ... here.
8914         (RELOAD12, reloadmode): New.
8915         (movcqi): New.
8916         (reload_in<RELOAD12>): Macro-ize from reload_inqi, reload_inhi.
8917         Don't handle the aligned case here.
8918         (reload_out<RELOAD12>): Macro-ize from reload_outqi, reload_outhi.
8919         (reload_in<I12MODE>_aligned): Macro-ize from reload_inqi_help,
8920         reload_inhi_help.  Don't expect a scratch register.
8921         (reload_out<I12MODE>_aligned): Macro-ize from reload_outqi_help,
8922         reload_outhi_help.
8923         * config/alpha/alpha-protos.h (alpha_secondary_reload_class): Remove.
8924
8925 2007-04-27  Richard Guenther  <rguenther@suse.de>
8926
8927         * tree-ssa-forwprop.c (get_prop_dest_stmt): Fix comment typo.
8928
8929 2007-04-27  Richard Guenther  <rguenther@suse.de>
8930
8931         PR tree-optimization/30965
8932         PR tree-optimization/30978
8933         * Makefile.in (tree-ssa-forwprop.o): Depend on $(FLAGS_H).
8934         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove.
8935         (find_equivalent_equality_comparison): Likewise.
8936         (simplify_cond): Likewise.
8937         (get_prop_source_stmt): New helper.
8938         (get_prop_dest_stmt): Likewise.
8939         (can_propagate_from): Likewise.
8940         (remove_prop_source_from_use): Likewise.
8941         (combine_cond_expr_cond): Likewise.
8942         (forward_propagate_comparison): New function.
8943         (forward_propagate_into_cond): Rewrite to use fold for
8944         tree combining.
8945         (tree_ssa_forward_propagate_single_use_vars): Call
8946         forward_propagate_comparison to propagate comparisons.
8947
8948 2007-04-27  Richard Guenther  <rguenther@suse.de>
8949
8950         PR tree-optimization/31715
8951         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make
8952         sure to do computation on the offset in an appropriate
8953         signed type.
8954
8955 2007-04-27  Richard Sandiford  <richard@codesourcery.com>
8956
8957         * reload.h (elimination_target_reg_p): Declare.
8958         * reload.c (find_reloads): Don't apply the reg_rtx move
8959         optimization if the SET_DEST satisfies elimination_target_reg_p.
8960         * reload1.c (elimination_target_reg_p): New function.
8961         (gen_reload): In the move/add2 fallback, make sure that op0
8962         does not overlap the destination register.
8963
8964 2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
8965
8966         * tree-ssa-loop-im.c (determine_invariantness_stmt): Attempt to
8967         transform only GIMPLE_MODIFY_STMTs.
8968         * tree-complex.c (expand_complex_operations_1): Ditto.
8969         (expand_complex_div_wide): Do not create gotos in COND_EXPR branches.
8970         * tree-ssa-loop-manip.c (build_if_stmt): Removed.
8971         (tree_transform_and_unroll_loop): Do not create gotos in COND_EXPR
8972         branches.
8973         * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
8974         tree_mod_subtract, tree_ic, tree_stringop_fixed_value): Ditto.
8975         * omp-low.c (expand_parallel_call, expand_omp_for_generic,
8976         expand_omp_for_static_chunk, expand_omp_for_static_nochunk): Ditto.
8977         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes,
8978         slpeel_add_loop_guard): Ditto.
8979         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
8980         * lambda-code.c (perfect_nestify): Ditto.
8981         * tree-iterator.c (tsi_split_statement_list_before): Fix splitting
8982         before the first statement.
8983         * tree-optimize.c (execute_free_datastructures): Fix comments.
8984         (execute_free_cfg_annotations): Do not call disband_implicit_edges.
8985         * tree-flow.h (disband_implicit_edges): Declaration removed.
8986         * tree-cfg.c (make_cond_expr_edges): Remove gotos from COND_EXPR
8987         branches.
8988         (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle
8989         COND_EXPRs without gotos.
8990         (disband_implicit_edges, has_label_p): Removed.
8991         (tree_verify_flow_info): Verify that COND_EXPR branches are empty.
8992         (tree_lv_add_condition_to_bb): Do not create gotos in COND_EXPR
8993         branches.
8994         * tree.c (build3_stat): Mark COND_EXPRs used as statements as having
8995         side effects.
8996         * tree-pretty-print.c (dump_implicit_edges): Dump implicit edges
8997         also for COND_EXPRs.
8998         * cfgexpand.c (label_rtx_for_bb): New function.
8999         (expand_gimple_cond_expr): Do not expect gotos in COND_EXPR branches.
9000         Use label_rtx_for_bb to find the labels.
9001         (expand_gimple_basic_block): Remove RETURN_EXPR at the end of the
9002         last block.  Detect fallthru edges.
9003
9004 2007-04-26  Ian Lance Taylor  <iant@google.com>
9005
9006         PR target/28675
9007         * reload.c (find_reloads_subreg_address): If the address was valid
9008         in the original mode but not in the new mode, reload the whole
9009         address.
9010
9011 2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
9012
9013         * tree-cfgcleanup.c (cfgcleanup_altered_bbs): New global variable.
9014         (remove_fallthru_edge): Use remove_edge_and_dominated_blocks.
9015         (cleanup_control_expr_graph): Do not invalidate dominance info.
9016         Record altered blocks.
9017         (cleanup_control_flow, cleanup_forwarder_blocks): Removed.
9018         (cleanup_control_flow_bb, split_bbs_on_noreturn_calls,
9019         cleanup_tree_cfg_bb): New functions.
9020         (remove_forwarder_block): Do not maintain the worklist of blocks.
9021         Record altered blocks.
9022         (cleanup_tree_cfg_1): Iterate over cfgcleanup_altered_bbs,
9023         not over whole cfg.
9024         (cleanup_tree_cfg): Do not iterate cleanup_tree_cfg_1.  Only call
9025         delete_unreachable_blocks if dominators are not available.
9026         * tree-inline.c (optimize_inline_calls): Free dominance information
9027         earlier.
9028         * tree-flow.h (remove_edge_and_dominated_blocks,
9029         cfgcleanup_altered_bbs): Altered.
9030         * tree-cfg.c (replace_uses_by, tree_merge_blocks): Record altered
9031         blocks.
9032         (get_all_dominated_blocks, remove_edge_and_dominated_blocks): New
9033         functions.
9034         (tree_purge_dead_eh_edges): Use remove_edge_and_dominated_blocks,
9035         do not invalidate dominators.
9036
9037 2007-04-26  Anatoly Sokolov <aesok@post.ru>
9038
9039         * config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and
9040         ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
9041         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
9042         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
9043
9044 2007-04-26  Steve Ellcey  <sje@cup.hp.com>
9045
9046         * config/ia64/ia64.md (ip_value):  Fix itanium_class attribute.
9047
9048 2007-04-26  Richard Guenther  <rguenther@suse.de>
9049
9050         PR tree-optimization/31703
9051         * tree-ssa-loop-im.c (rewrite_bittest): Make sure to use
9052         the right type for the target of the bittest.
9053
9054 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
9055
9056         * config/i386/vx-common.h (RETURN_IN_MEMORY): Use
9057         ix86_sol10_return_in_memory.
9058
9059 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
9060
9061         * config/i386/i386.c (ix86_sol10_return_in_memory): Remove unused
9062         variables.
9063
9064 2007-04-26  Jakub Jelinek  <jakub@redhat.com>
9065
9066         PR c++/31598
9067         * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.
9068
9069         PR tree-optimization/30558
9070         * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
9071         clear this_state.prev_try.
9072
9073 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
9074             Mark Mitchell  <mark@codesourcery.com>
9075
9076         * config/i386/i386-protos.h (ix86_sol10_return_in_memory): Declare.
9077         * config/i386/i386.c (ix86_sol10_return_in_memory): New function.
9078         * config/i386/sol2-10.h (RETURN_IN_MEMORY): Use it.
9079
9080 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
9081
9082         PR driver/31107
9083         * doc/invoke.texi (%:print-asm-header): Document.
9084         * gcc.c (asm_options): Use %:print-asm-header() for --target-help
9085         and -ftarget-help.
9086         (static_spec_functions): Add print-asm-header.
9087         (main): Print a banner before the --target-help linker options.
9088         (print_asm_header_spec_function): New function.
9089
9090 2007-04-25  Kaz Kojima  <kkojima@gcc.gnu.org>
9091
9092         PR target/31403
9093         * config/sh/sh.md (movsi_ie): Fix length for TARGET_SH2A.
9094         (movsf_ie): Likewise.
9095
9096 2007-04-25  Paolo Carlini  <pcarlini@suse.de>
9097
9098         * doc/extend.texi ([Type Traits]): Adjust per N2255.
9099
9100 2007-04-25  Bob Wilson  <bob.wilson@acm.org>
9101
9102         * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an
9103         exception for divide-by-zero.
9104         (__umodsi3, __modsi3): Likewise.
9105
9106 2007-04-25  Dirk Mueller  <dmueller@suse.de>
9107
9108         * c-typeck.c (build_compound_expr): Annotate warning()
9109         call with OPT_Wunused_value.
9110         * tree-ssa.c (warn_uninit): Annotate warning with
9111         OPT_Wunintialized.
9112         * c-common.c (handle_sentinel_attribute): Annotate warning
9113         call with OPT_Wattributes.
9114
9115 2007-04-25  Thiemo Seufer  <ths@mips.com>
9116
9117         * config/mips/mips.opt (mdmx, mmt, mno-mdmx): New options.
9118         (mips16): Fix typo.
9119         * config/mips/mips.h (ASM_SPEC): Pass -mmt/-mno-mt and -mdmx/-mno-mdmx
9120         on to the assembler.  Improve handling of -mno-mips16.  Add handling
9121         of -mno-mips3d, -mno-dsp, -mno-dspr2.
9122         * doc/invoke.texi (MIPS Options): Whitespace cleanup.  Fix wrong use
9123         of @itemx.  Document -mno-dsp, -mno-dspr2, -mno-paired-single, -mdmx,
9124         -mno-mdmx, -mno-mips3d, -mmt and -mno-mt.
9125
9126 2007-04-25  Danny Smith  <dannysmith.users.sourceforge.net>
9127
9128         PR target/31680
9129         * config/i386/winnt.c (i386_pe_file_end): Strip only
9130         USER_LABEL_PREFIX when writing export name.
9131
9132 2007-04-25  Richard Sandiford  <richard@codesourcery.com>
9133
9134         * config.gcc (sh-wrs-vxworks): Don't include dbxelf.h.  Include
9135         sh/elf.h, vx-common.h and vxworks.h.
9136         * config/sh/sh.h: Include config/vxworks-dummy.h.
9137         (SUBTARGET_OVERRIDE_OPTIONS): Define.
9138         (OVERRIDE_OPTIONS): Use it.
9139         * config/sh/sh.md (GOTaddr2picreg): Add suport for VxWorks RTPs.
9140         (vxworks_picreg): New pattern.
9141         * config/sh/vxworks.h (TARGET_OS_CPP_BUILTINS): Use
9142         VXWORKS_OS_CPP_BUILTINS.
9143         (LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine
9144         to their VXWORKS_* equivalents.
9145         (SUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
9146         (SUBTARGET_LINK_EMUL_SUFFIX, FUNCTION_PROFILER): Define.
9147         * config/sh/lib1funcs.asm (NO_FPSCR_VALUES): Define for VxWorks PIC.
9148         (set_fpscr, ic_invalidate): Add VxWorks PIC sequences.
9149         * config/sh/t-vxworks (MULTILIB_OPTIONS): Add m4a, -mrtp and
9150         -mrtp/-fPIC multilibs.
9151         (MULTILIB_EXCEPTIONS): Generalize globs accordingly.
9152         (MULTILIB_MATCHES, EXTRA_MULTILIB_PARTS): Define.
9153         (MULTILIB_OSDIRNAMES): Delete.
9154
9155 2007-04-25  Anatoly Sokolov <aesok@post.ru>
9156
9157         PR target/18989
9158         * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
9159
9160 2007-04-24  Brooks Moses  <brooks.moses@codesourcery.com>
9161
9162         * real.c (mpfr_from_real): Handle Inf and NaN, and allow the
9163         rounding mode to be specified by the caller.
9164         (real_to_mpfr) Likewise.
9165         * real.h: Update mpfr_from_real, mpfr_to_real prototypes to
9166         include new arguments.
9167         * builtins.c: Update mpfr_from_real, mpfr_to_real calls.
9168
9169 2007-04-24  Ian Lance Taylor  <iant@google.com>
9170
9171         PR tree-optimization/31605
9172         * tree-vrp.c (set_value_range): Check that min and max are not
9173         both overflow infinities.
9174         (set_value_range_to_value): New static function.
9175         (extract_range_from_binary_expr): Call set_value_range_to_value.
9176         (extract_range_from_cond_expr): Likewise.
9177         (extract_range_from_expr): Likewise.
9178         (extract_range_from_unary_expr): Likewise.  Don't create a range
9179         which overflows on both sides.
9180         (vrp_meet): Check for a useless range.
9181         (vrp_visit_phi_node): If we see a constant which looks like an
9182         overflow infinity, turn off the TREE_OVERFLOW flag.
9183
9184 2007-04-24  Ian Lance Taylor  <iant@google.com>
9185
9186         * flow.c (elim_reg_cond): Handle a comparison of a subreg.
9187
9188 2007-04-24  Simon Martin  <simartin@users.sourceforge.net>
9189
9190         PR diagnostic/25923
9191         * tree-pass.h (TDF_DIAGNOSTIC): New dump control to specify that a
9192         diagnostic message is being built.
9193         * tree-pretty-print.c (dump_generic_node): Only write the
9194         formatted text into BUFFER's stream if we are not building a
9195         diagnostic message.
9196         * toplev.c (default_tree_printer): Pass TDF_DIAGNOSTIC to
9197         dump_generic_node.
9198         * Makefile.in (toplev.o): Depend on tree-pass.h.
9199
9200 2007-04-24  Ian Lance Taylor  <iant@google.com>
9201
9202         PR tree-optimization/31602
9203         * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
9204         conditionals in the copied loop header.
9205         * tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
9206         warnings if TREE_NO_WARNING is set.
9207         * doc/invoke.texi (Warning Options): Clarify that
9208         -Wstrict-overflow does not warn about loops.
9209
9210 2007-04-24  Janis Johnson  <janis187@us.ibm.com>
9211
9212         * config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI,
9213         expand on the comment about _Decimal128 arguments and check the
9214         integer result of the modulus operation; for 64-bit ELF ABI, ensure
9215         that _Decimal128 argument uses even/odd register pair.
9216         (function_arg): Ditto.
9217
9218 2007-04-24  Hui-May Chang <hm.chang@apple.com>
9219
9220         * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
9221         instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
9222
9223 2007-04-24  Richard Guenther  <rguenther@suse.de>
9224             Olga Golovanevsky  <olga@il.ibm.com>
9225
9226         * fold-const.c (multiple_of_p): Check for bottom
9227         to be zero.
9228
9229 2007-04-24  Richard Henderson  <rth@redhat.com>
9230
9231         * libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from
9232         IS_IBM_EXTENDED.  Also define in terms of WIDEST_HARDWARE_FP_SIZE.
9233         * libgcc2.c (__floatdisf): Avoid double-word arithmetic when
9234         looking for non-zero bits shifted out.  Avoid a recursive call
9235         when constructing the scalar.
9236         (__floatundisf): Likewise.
9237
9238 2007-04-24  Nathan Froyd  <froydnj@codesourcery.com>
9239
9240         * dwarf2out.c (field_byte_offset): Move the existing logic
9241         under the control of PCC_BITFIELD_TYPE_MATTERS and just use
9242         the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS.
9243
9244 2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
9245
9246         PR target/31641
9247         * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant
9248         length argument of 0 for memset.
9249         (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
9250         unsigned shift instead of the signed variant.
9251
9252 2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
9253
9254         * config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm",
9255         "fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm",
9256         "floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm",
9257         "*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
9258         "*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
9259         "*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee",
9260         "*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm",
9261         "*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm",
9262         "*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed.
9263         ("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2",
9264         "truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3",
9265         "mul<mode>3", "div<mode>3"): Insn definitions added.
9266         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2",
9267         "fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed
9268         to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp.
9269         ("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2",
9270         "trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3",
9271         "sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed.
9272         ("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added.
9273         * config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT,
9274         TARGET_FLOAT_FORMAT): Macro definitions removed.
9275         (FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore.
9276         * config/s390/s390.c (struct processor_costs, z900_cost, z990_cost,
9277         z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der.
9278         (s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches.
9279         (s390_gen_rtx_const_DI): Function removed.
9280         * config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed.
9281
9282 2007-04-24  Richard Sandiford  <richard@codesourcery.com>
9283
9284         * optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions
9285         over an external ffs function.
9286
9287 2007-04-24  Chao-ying Fu  <fu@mips.com>
9288             Richard Sandiford  <richard@nildram.co.uk>
9289
9290         * doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document.
9291         * optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes.
9292         (smadd_widen_optab, umadd_widen_optab): Define.
9293         * optabs.c (init_optabs): Initialize smadd_widen_optab and
9294         umadd_widen_optab.
9295         * genopinit.c (optabs): Fill in smadd_widen_optab and
9296         umadd_widen_optab.
9297         * expr.c (expand_expr_real_1): Try to use smadd_widen_optab
9298         and umadd_widen_optab to implement multiply-add sequences.
9299         * config/mips/mips.md (*<su>mul_acc_di): Rename to...
9300         (<u>maddsidi4): ...this.  Extend condition to include
9301         GENERATE_MADD_MSUB and TARGET_DSPR2.  Change the constraint
9302         of operand 0 to "ka" and use the three-operand form of madd<u>
9303         for TARGET_DSPR2.
9304         * config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert
9305         to define_expands.
9306         * config/mips/constraints.md (ka): New register constraint.
9307
9308 2007-04-24  Jan Hubicka  <j@suse.cz>
9309
9310         Revert:
9311
9312         2007-04-23  Jan Hubicka  <jh@suse.cz>
9313         * function.c (init_function_start): Don't init line number info.
9314         (expand_function_end): Update.
9315         (reset_block_changes, record_block_change, finalize_block_changes,
9316         check_block_change, free_block_changes): Kill.
9317         * function.h (reset_block_changes, record_block_change,
9318         finalize_block_changes, check_block_change, free_block_changes):
9319         Remove prototypes.
9320         (struct function): Remove ib_boundaries_block.
9321         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
9322         Use curr_insn_locator to initialize locator.
9323         (emit_line_note): Remove.
9324         * cfgexpand.c (expand_gimple_cond_expr): Update.
9325         (construct_exit_block): Likewise.
9326         (tree_expand_cfg): Initialize/finalize locators.
9327         * expr.c (expand_expr_real): Update.
9328         * cfglayout.c (line_locators_locs, line_locators_lines,
9329         file_locators_locs, file_locators_files): Remove.
9330         (set_block_levels): Move to cfgexpand.c.
9331         (insn_locators_initialize): Remove.
9332         (pass_insn_locators_initialize): Remove.
9333         (locations_locators_locs, locations_locators_vals): New static vars.
9334         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
9335         Likewise.
9336         (insn_locators_alloc, insn_locators_finalize,
9337         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
9338         New functions.
9339         (locator_location): New.
9340         (locator_line, locator_file): Rewrite.
9341         * rtl.h (emit_line_note): Kill.
9342         (insn_locators_alloc, insn_locators_finalize,
9343         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
9344         Declare.
9345         * tree-inline.c (initialize_cfun): Do not initialize
9346         ib_boundaries_block.
9347         * passes.c (pass_insn_locators_initialize): Remove.
9348
9349 2007-04-24  Daniel Franke  <franke.daniel@gmail.com>
9350
9351         * doc/invoke.texi: Removed leading '-' from option index entries.
9352
9353 2007-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
9354
9355         * tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node):
9356         Use phi_nodes_ptr.
9357         (create_phi_node): Use set_phi_nodes.
9358         * omp-low.c (expand_omp_parallel): Use bb_stmt_list.
9359         * tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
9360         (combine_blocks):  Use bb_stmt_list and set_bb_stmt_list.
9361         * tree-flow-inline.h (phi_nodes, set_phi_nodes,
9362         (bsi_start, bsi_last): Use bb_stmt_list.
9363         (phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
9364         * cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list.
9365         Traverse the statements using tsi iterator.
9366         * basic-block.h (struct basic_block_def): Fields stmt_list
9367         and phi_nodes moved to ...
9368         (struct tree_bb_info): ... new structure.
9369         * tree-cfg.c (create_bb): Allocate il.tree.  Use set_bb_stmt_list.
9370         (tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list.
9371         (remove_bb): Handle blocks with NULL stmt list.  Clear il.tree field.
9372         (tree_verify_flow_info): Verify that il.tree is not set for
9373         entry and exit block.
9374         (tree_split_block): Use set_bb_stmt_list.
9375
9376 2007-04-23  Mike Stump  <mrs@apple.com>
9377
9378         * config/i386/i386.c (ix86_tune_features
9379         [X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on
9380         nocona and core2.
9381
9382 2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>
9383
9384         * config/i386/i386.md (prefix_extra): New attribute.
9385         (length): Add prefix_extra.
9386
9387         * onfig/i386/sse.md (sse2_movdqu): Set prefix_data16.
9388         (sse2_movntv2di): Likewise.
9389         (sse2_cvtps2dq): Likewise.
9390         (sse2_cvtpd2pi): Likewise.
9391         (sse2_cvttpd2pi): Likewise.
9392         (*sse2_cvtpd2ps): Likewise.
9393         (*add<mode>3): Likewise.
9394         (sse2_ssadd<mode>3): Likewise.
9395         (sse2_usadd<mode>3): Likewise.
9396         (*sub<mode>3): Likewise.
9397         (sse2_sssub<mode>3): Likewise.
9398         (sse2_ussub<mode>3): Likewise.
9399         (*mulv8hi3): Likewise.
9400         (*smulv8hi3_highpart): Likewise.
9401         (*umulv8hi3_highpart): Likewise.
9402         (sse2_umulv2siv2di3): Likewise.
9403         (sse2_pmaddwd): Likewise.
9404         (ashr<mode>3): Likewise.
9405         (lshr<mode>3): Likewise.
9406         (ashl<mode>3): Likewise.
9407         (sse2_ashlti3): Likewise.
9408         (sse2_lshrti3): Likewise.
9409         (*umaxv16qi3): Likewise.
9410         (*smaxv8hi3): Likewise.
9411         (*uminv16qi3): Likewise.
9412         (*sminv8hi3): Likewise.
9413         (sse2_eq<mode>3): Likewise.
9414         (sse2_gt<mode>3): Likewise.
9415         (*and<mode>3): Likewise.
9416         (sse2_nand<mode>3): Likewise.
9417         (*ior<mode>3): Likewise.
9418         (*xor<mode>3): Likewise.
9419         (sse2_packsswb): Likewise.
9420         (sse2_packssdw): Likewise.
9421         (sse2_packuswb): Likewise.
9422         (sse2_punpckhbw): Likewise.
9423         (sse2_punpcklbw): Likewise.
9424         (sse2_punpckhwd): Likewise.
9425         (sse2_punpcklwd): Likewise.
9426         (sse2_punpckhdq): Likewise.
9427         (sse2_punpckldq): Likewise.
9428         (sse2_punpckhqdq): Likewise.
9429         (sse2_punpcklqdq): Likewise.
9430         (*sse2_pinsrw): Likewise.
9431         (*sse2_pextrw): Likewise.
9432         (sse2_pshufd_1): Likewise.
9433         (sse2_uavgv16qi3): Likewise.
9434         (sse2_uavgv8hi3): Likewise.
9435         (sse2_psadbw): Likewise.
9436         (sse2_pmovmskb): Likewise.
9437         (*sse2_maskmovdqu): Likewise.
9438         (*sse2_maskmovdqu_rex64): Likewise.
9439         (sse4a_extrqi): Likewise.
9440         (sse4a_extrq): Likewise.
9441         (sse3_lddqu): Set prefix_rep.
9442         (sse3_addsubv4sf3): Likewise.
9443         (sse3_haddv4sf3): Likewise.
9444         (sse3_hsubv4sf3): Likewise.
9445         (sse_cvtss2si): Likewise.
9446         (sse_cvtss2si_2): Likewise.
9447         (sse_cvtss2siq): Likewise.
9448         (sse_cvtss2siq_2): Likewise.
9449         (sse_cvttss2si): Likewise.
9450         (sse_cvttss2siq): Likewise.
9451         (sse2_cvttps2dq): Likewise.
9452         (sse3_movshdup): Likewise.
9453         (sse3_movsldup): Likewise.
9454         (sse2_cvtsd2si): Likewise.
9455         (sse2_cvtsd2si_2): Likewise.
9456         (sse2_cvtsd2siq): Likewise.
9457         (sse2_cvtsd2siq_2): Likewise.
9458         (sse2_cvttsd2si): Likewise.
9459         (sse2_cvttsd2siq): Likewise.
9460         (*sse2_cvtpd2dq): Likewise.
9461         (*sse2_cvttpd2dq): Likewise.
9462         (sse2_pshuflw_1): Likewise.
9463         (sse2_pshufhw_1): Likewise.
9464         (sse4a_insertqi): Likewise.
9465         (sse4a_insertq): Likewise.
9466         (ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra.
9467         (ssse3_phadddv4si3): Likewise.
9468         (ssse3_phaddswv8hi3): Likewise.
9469         (ssse3_phsubwv8hi3): Likewise.
9470         (ssse3_phsubdv4si3): Likewise.
9471         (ssse3_phsubswv8hi3): Likewise.
9472         (ssse3_pmaddubswv8hi3): Likewise.
9473         (ssse3_pmulhrswv8hi3): Likewise.
9474         (ssse3_pshufbv16qi3): Likewise.
9475         (ssse3_psign<mode>3): Likewise.
9476         (ssse3_palignrti): Likewise.
9477         (abs<mode>2): Likewise.
9478         (ssse3_phaddwv4hi3): Set prefix_extra.
9479         (ssse3_phadddv2si3): Likewise.
9480         (ssse3_phaddswv4hi3): Likewise.
9481         (ssse3_phsubwv4hi3): Likewise.
9482         (ssse3_phsubdv2si3): Likewise.
9483         (ssse3_phsubswv4hi3): Likewise.
9484         (ssse3_pmaddubswv4hi3): Likewise.
9485         (ssse3_pmulhrswv4hi3): Likewise.
9486         (ssse3_pshufbv8qi3): Likewise.
9487         (ssse3_psign<mode>3): Likewise.
9488         (ssse3_palignrdi): Likewise.
9489         (abs<mode>2): Likewise.
9490         (sse2_cvtdq2ps): Set mode to V4SF instead of V2DF.
9491         (*vec_dupv2df): Set mode to V2DF instead of V4SF.
9492         (sse2_pmovmskb): Set mode to SI instead of V2DF.
9493
9494 2007-04-23  Nick Clifton  <nickc@redhat.com>
9495
9496         * params.def: Fix formatting of emacs local variables.
9497
9498 2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>
9499
9500         * config/i386/sse.md (sse2_stored): Don't split to inter-unit
9501         move if inter-unit move isn't allowed.
9502         Don't split moving the first element of V2DI to DI to inter-unit
9503         move if inter-unit move isn't allowed.
9504
9505 2007-04-23  Richard Guenther  <rguenther@suse.de>
9506
9507         * tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS
9508         and CDI_POST_DOMINATORS separately.
9509
9510 2007-04-23  Nick Clifton  <nickc@redhat.com>
9511
9512         * c.opt (Wformat-contains-nul): Add warning attribute.
9513
9514 2007-04-23  Jan Hubicka  <jh@suse.cz>
9515
9516         * function.c (init_function_start): Don't init line number info.
9517         (expand_function_end): Update.
9518         (reset_block_changes, record_block_change, finalize_block_changes,
9519         check_block_change, free_block_changes): Kill.
9520         * function.h (reset_block_changes, record_block_change,
9521         finalize_block_changes, check_block_change, free_block_changes):
9522         Remove prototypes.
9523         (struct function): Remove ib_boundaries_block.
9524         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
9525         Use curr_insn_locator to initialize locator.
9526         (emit_line_note): Remove.
9527         * cfgexpand.c (expand_gimple_cond_expr): Update.
9528         (construct_exit_block): Likewise.
9529         (tree_expand_cfg): Initialize/finalize locators.
9530         * expr.c (expand_expr_real): Update.
9531         * cfglayout.c (line_locators_locs, line_locators_lines,
9532         file_locators_locs, file_locators_files): Remove.
9533         (set_block_levels): Move to cfgexpand.c.
9534         (insn_locators_initialize): Remove.
9535         (pass_insn_locators_initialize): Remove.
9536         (locations_locators_locs, locations_locators_vals): New static vars.
9537         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
9538         Likewise.
9539         (insn_locators_alloc, insn_locators_finalize,
9540         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
9541         New functions.
9542         (locator_location): New.
9543         (locator_line, locator_file): Rewrite.
9544         * rtl.h (emit_line_note): Kill.
9545         (insn_locators_alloc, insn_locators_finalize,
9546         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
9547         Declare.
9548         * tree-inline.c (initialize_cfun): Do not initialize
9549         ib_boundaries_block.
9550         * passes.c (pass_insn_locators_initialize): Remove.
9551
9552 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9553
9554         PR middle-end/31448
9555         * expr.c (reduce_to_bit_field_precision): Handle
9556         CONST_INT rtx's.
9557
9558 2007-04-22  Uros Bizjak  <ubizjak@gmail.com>
9559
9560         PR tree-optimization/24659
9561         * optabs.h (enum optab_index) [OTI_vec_unpacks_hi,
9562         OTI_vec_unpacks_lo]: Update comment to mention floating point operands.
9563         (vec_pack_trunc_optab): Rename from vec_pack_mod_optab.
9564         * genopinit.c (optabs): Rename vec_pack_mod_optab
9565         to vec_pack_trunc_optab.
9566         * tree-vect-transform.c (vectorizable_type_demotion): Do not fail
9567         early for scalar floating point operands for NOP_EXPR.
9568         (vectorizable_type_promotion): Ditto.
9569         * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return
9570         vec_pack_trunc_optab.
9571         (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab.
9572
9573         * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR.
9574         * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]:
9575         Rename from VEC_PACK_MOD_EXPR.
9576         (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto.
9577         * expr.c (expand_expr_real_1): Ditto.
9578         * tree-inline.c (estimate_num_insns_1): Ditto.
9579         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
9580
9581         * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander.
9582         (vec_unpacks_lo_v4sf): Ditto.
9583         (vec_pack_trunc_v2df): Ditto.
9584         (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi.
9585         (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
9586         (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di.
9587
9588         * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from
9589         vec_pack_mod_v8hi.
9590         (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
9591
9592         * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]:
9593         Rename from VEC_PACK_MOD_EXPR.  This expression also represent
9594         packing of floating point operands.
9595         [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also
9596         represent unpacking of floating point operands.
9597         * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation.
9598         [vec_unpacks_hi]: Ditto.
9599         [vec_unpacks_lo]: Ditto.
9600
9601 2007-04-22  Jan Hubicka  <jh@suse.cz>
9602
9603         * final.c (rest_of_handle_final): Call
9604         targetm.asm_out.constructor/targetm.asm_out.destructor
9605         * cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set
9606         proper priority via decl_*_priority_insert.
9607         * c-common.c (c_expand_body): Likewise.
9608
9609 2007-04-22  Richard Guenther  <rguenther@suse.de>
9610
9611         PR tree-optimization/29789
9612         * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts.
9613         (rewrite_reciprocal): New helper split out from
9614         determine_invariantness_stmt.
9615         (rewrite_bittest): Likewise.
9616         (determine_invariantness_stmt): Rewrite (A >> B) & 1 to
9617         A & (1 << B) if (1 << B) is loop invariant but (A >> B)
9618         is not.
9619
9620 2007-04-22  Revital Eres  <eres@il.ibm.com>
9621
9622         * loop-unroll.c (var_to_expand): New field to support also
9623         insns of the form x = something + x.
9624         (analyze_insn_to_expand_var): Use it.
9625         (expand_var_during_unrolling): Likewise.
9626
9627 2007-04-21  Zdenek Dvorak  <dvorakz@suse.cz>
9628
9629         * predict.c: Include pointer-set.h.
9630         (bb_predictions): New variable.
9631         (tree_predicted_by_p, tree_predict_edge,
9632         remove_predictions_associated_with_edge): Use bb_predictions map
9633         instead of bb->predictions.
9634         (clear_bb_predictions, assert_is_empty): New functions.
9635         (combine_predictions_for_bb): Use bb_predictions map.  Call
9636         clear_bb_predictions.
9637         (tree_estimate_probability): Create and free bb_predictions map.
9638         * Makefile.in (predict.o): Add pointer-set.h dependency.
9639         * basic-block.h (struct basic_block_def): Remove predictions
9640         field.
9641         * cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.
9642
9643 2007-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
9644
9645         PR target/31480
9646         * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
9647         is null.
9648
9649 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9650
9651         * timevar.c (timevar_print): Change reference of --disable-checking to
9652         --enable-checking=release.  Also warn if assert checking is disabled.
9653
9654 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9655
9656         PR C/30265
9657         * c-gimplifier.c (gimplify_compound_literal_expr): Mark the
9658         decl as addressable if the compound literal was marked as
9659         addressable.
9660         Mark the decl as a gimple register if it is a complex or
9661         vector decl and does not live in memory.
9662
9663 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9664
9665         * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
9666         (GENERIC_NEXT): New function macro.
9667         (PHI_CHAIN): Use phi_node's new chain variable.
9668         (tree_phi_node): Change tree_common to tree_base
9669         and add the chain field.
9670         * tree-phinodes.c (make_phi_node): Don't set
9671         TREE_TYPE on the new node.
9672         * c-decl.c (lang_tree_node): Use GENERIC_NEXT
9673         instead of checking GIMPLE_TUPLE_P in chain_next.
9674         * tree-vect-transform.c
9675         (get_initial_def_for_induction): Look at
9676         PHI_RESULT_TREE for the type of the phi node.
9677         (update_vuses_to_preheader): Use PHI_CHAIN
9678         instead of TREE_CHAIN on the phi node.
9679         * tree-ssa-structalias.c (compute_points_to_sets):
9680         Likewise.
9681         (ipa_pta_execute): Likewise.
9682
9683 2007-04-21  Richard Guenther  <rguenther@suse.de>
9684
9685         PR middle-end/31136
9686         * fold-const.c (fold_unary): Call fold_convert_const on the
9687         original tree.
9688
9689 2007-04-21  Alexandre Oliva  <aoliva@redhat.com>
9690
9691         * gcse.c (store_killed_in_insn): Handle PARALLELs.
9692         (store_killed_in_pat): New.
9693
9694 2007-04-20  Richard Henderson  <rth@redhat.com>
9695
9696         PR target/31628
9697         * config/i386/i386.c (type_has_variadic_args_p): Look for any
9698         TREE_LIST with a void_type_node value, not void_list_node exactly.
9699
9700 2007-04-21  Douglas Gregor  <doug.gregor@gmail.com>
9701
9702         * doc/standards.texi: Re-arrange into language-specific
9703         subsections. Add a C++ section, documenting which standards we
9704         support.
9705
9706 2007-04-21  Zdenek Dvorak  <dvorakz@suse.cz>
9707
9708         * tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex.
9709         * tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops.
9710
9711 2007-04-20  Daniel Jacobowitz  <dan@codesourcery.com>
9712
9713         * config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include
9714         ecrti.o and crtbegin.o.
9715         (LIB_DEFAULT_SPEC): Include -lc.
9716         (ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o.
9717
9718 2007-04-20  Richard Henderson  <rth@redhat.com>
9719
9720         PR target/28623
9721         * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
9722         argument; update all callers.
9723         (get_unaligned_offset): New.
9724         * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
9725         get_unaligned_address, just pass on the address directly.
9726         (unaligned_extendqidi): Use gen_lowpart instead of open-coding
9727         the subreg in the helper patterns.
9728         (unaligned_extendqidi_le): Use get_unaligned_offset.
9729         (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
9730         (unaligned_extendhidi_be): Likewise.
9731         (unaligned_extendhidi): Tidy.
9732         * config/alpha/alpha-protos.h: Update.
9733
9734 2007-04-20  Richard Henderson  <rth@redhat.com>
9735
9736         * config/alpha/alpha.h (CPP_SPEC, CPP_SUBTARGET_SPEC): Remove.
9737         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
9738         * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
9739         * config/alpha/linux-elf.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
9740         * config/alpha/freebsd.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
9741         (CPP_SPEC): Don't include %(cpp_subtarget).
9742         * config/alpha/netbsd.h (CPP_SPEC): Rename CPP_SUBTARGET_SPEC.
9743         (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
9744         * config/alpha/osf.h (CPP_SPEC, EXTRA_SPECS): Similarly.
9745
9746 2007-04-20  Jakub Jelinek  <jakub@redhat.com>
9747
9748         * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
9749         for __builtin_ia32_cmpordss.
9750
9751         PR tree-optimization/31632
9752         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
9753         and arg1 for optimizations of comparison against min/max values.
9754         Fold arg0 to arg1's type for optimizations of comparison against
9755         min+1 and max-1 values.
9756
9757 2007-04-19  Bernd Schmidt  <bernd.schmidt@analog.com>
9758
9759         * reload.c (combine_reloads): When trying to use a dying register,
9760         check whether it's uninitialized and don't use if so.
9761
9762 2007-04-19  Brooks Moses  <brooks.moses@codesourcery.com>
9763
9764         * fold-const.c: Remove prototypes for native_encode_expr and
9765         native_interpret_expr.
9766         (native_encode_expr): Make non-static.
9767         (native_interpret_expr): Likewise.
9768         * tree.h: Add prototypes for the above.
9769
9770 2007-04-19  Joseph Myers  <joseph@codesourcery.com>
9771
9772         * config/rs6000/spe.md (*frob_tf_ti, *frob_ti_tf, *frob_ti_tf_2,
9773         *mov_si<mode>_e500_subreg0, *mov_si<mode>_e500_subreg0_2,
9774         *mov_sitf_e500_subreg8, *mov_sitf_e500_subreg8_2, spe_extenddftf2,
9775         spe_fix_trunctfsi2_internal, spe_negtf2_internal, cmptfeq_gpr,
9776         tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
9777         Add length attributes.
9778
9779 2007-04-19  Janis Johnson  <janis187@us.ibm.com>
9780
9781         * ginclude/float.h: Check that __STDC_WANT_DEC_FP__ is defined,
9782         not that it is 1.
9783
9784         * c-cppbuiltin.c (c_cpp_builtins): Remove definition of
9785         __STDC_WANT_DEC_FP__.
9786
9787 2007-04-19  Joseph Myers  <joseph@codesourcery.com>
9788
9789         * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
9790         for long double compatibility.
9791         * configure: Regenerate.
9792
9793 2007-04-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
9794
9795         PR rtl-optimization/29841
9796         * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
9797         trap instructions.
9798         * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
9799         that may cause control flow transfer from being moved.
9800
9801 2007-04-18  Jan Hubicka  <jh@suse.cz>
9802
9803         * fold-const.c (div_if_zero_remainder): Do signed divide for pointer
9804         types.
9805
9806 2007-04-18  Eric Christopher  <echristo@apple.com>
9807
9808         * config/rs6000/darwin.md (load_macho_picbase): Use link register
9809         only. Update operands.
9810         * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
9811         * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
9812         link register to pic register.
9813
9814 2007-04-18  Dirk Mueller  <dmueller@suse.de>
9815
9816         PR diagnostic/31227
9817         * tree-vrp.c (search_for_addr_array): New.
9818         (check_array_bounds): Suppress warning about
9819         address taken of array refs if its not de-referenced.
9820
9821 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
9822
9823         * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
9824         * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.
9825
9826         * tree-vectorizer.h (NITERS_KNOWN_P): New.
9827         * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
9828         instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.
9829
9830         * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
9831         dump print.
9832         (vect_analyze_operations): Fix indenetation.  Fix a comment.  Fix a
9833         print message.
9834         (vect_analyze_scalar_cycles): Fix indentation.
9835         (vect_enhance_data_refs_alignment): Fix check in case of peeling.
9836         (vect_mark_relevant): Include phis in relevance analysis.
9837
9838         * tree-vect-transform.c (vect_transform_loop): Add an assert.
9839
9840 2007-04-18  Anatoly Sokolov <aesok@post.ru>
9841
9842         * config/avr/avr.c (ptrreg_to_str): Replace error() with
9843         output_operand_lossage().
9844
9845 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
9846
9847         * tree-vect-transform.c (get_initial_def_for_reduction): Clean away
9848         the unused code for reduction without adjust-in-epilog to simplify the
9849         function.
9850
9851 2007-04-18  Wolfgang Gellerich  <gellerich@de.ibm.com>
9852
9853         * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
9854         (S390_TDC_NEGATIVE_ZERO): New constant.
9855         (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
9856         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
9857         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
9858         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
9859         (S390_TDC_POSITIVE_INFINITY): New constant.
9860         (S390_TDC_NEGATIVE_INFINITY): New constant.
9861         (S390_TDC_POSITIVE_QUIET_NAN): New constant.
9862         (S390_TDC_NEGATIVE_QUIET_NAN): New constant.
9863         (S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
9864         (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
9865         (S390_TDC_INFINITY): New constant.
9866         * config/s390/s390.c (s390_canonicalize_comparison): Renamed
9867         UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
9868         optimization for UNSPEC_CCZ_TO_INT.
9869         * config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
9870         ("*ccz_to_int"): New insn.
9871         ("isinf<mode>2"): New insn.
9872         (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
9873         (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
9874         (UNSPEC_CCZ_TO_INT): New constant.
9875
9876 2007-04-18  Richard Guenther  <rguenther@suse.de>
9877
9878         PR tree-optimization/19431
9879         PR tree-optimization/21463
9880         * tree-pass.h (pass_phiprop): Declare.
9881         * passes.c (init_optimization_passes): New phiprop pass.
9882         * tree-ssa-forwprop.c (struct phiprop_d): New structure.
9883         (phivn_valid_p): New helper function.
9884         (phiprop_insert_phi): Likewise.
9885         (propagate_with_phi): Likewise.
9886         (tree_ssa_phiprop): New propagator propagating loads
9887         through phi nodes if profitable.
9888
9889 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
9890
9891         * tree-vect-analyze.c (process_use): New function.
9892         (vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
9893         Check phis in all bbs.
9894         * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
9895         assert.
9896
9897 2007-04-18  Bernd Schmidt  <bernd.schmidt@analog.com>
9898
9899         * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
9900         we use REG_EQUAL.
9901
9902 2007-04-17  Anatoly Sokolov <aesok@post.ru>
9903
9904         PR target/30483
9905         * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
9906         error().
9907
9908 2007-04-17  H.J. Lu  <hongjiu.lu@intel.com>
9909
9910         * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
9911         on "0".
9912         (sse_vmmulv4sf3): Likewise.
9913         (sse2_vmaddv2df3): Likewise.
9914         (sse2_vmmulv2df3): Likewise.
9915
9916 2007-04-17  Zdenek Dvorak  <dvorakz@suse.cz>
9917
9918         PR rtl-optimization/31360
9919         * cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
9920         (target_reg_cost): New.
9921         (init_set_costs): Initialize target_reg_cost.  Add comments
9922         regarding the rationale of the costs.
9923         (global_cost_for_size): Renamed to...
9924         (estimate_reg_pressure_cost): ... and simplify.  Decrease importance
9925         of register pressure.
9926         * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
9927         estimate_reg_pressure_cost.  Add number of ivs.
9928         (determine_set_costs): Dump target_reg_cost.
9929         * loop-invariant.c (gain_for_invariant):  Use
9930         estimate_reg_pressure_cost.  Removed n_inv_uses argument.
9931         (best_gain_for_invariant, find_invariants_to_move): Remove
9932         n_inv_uses.
9933         * cfgloop.h (target_small_cost, target_pres_cost): Removed.
9934         (target_reg_cost): Declare.
9935         (global_cost_for_size): Declaration removed.
9936         (estimate_reg_pressure_cost): Declare.
9937
9938 2007-04-17  Peter Bergner  <bergner@vnet.ibm.com>
9939
9940         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
9941         regnos into even/odd register pairs.
9942         * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
9943         TDmode similar to the other floating point modes.
9944         [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
9945         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
9946         define_expand's.
9947         (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
9948         nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
9949         (movdd_hardfloat64): Use TARGET_MFPGPR.
9950
9951 2007-04-17  Bernd Schmidt  <bernd.schmidt@analog.com>
9952
9953         * reload1.c (delete_output_reload): Don't count output in n_inherited.
9954
9955         Revert
9956         2005-01-05  Richard Henderson  <rth@redhat.com>
9957         PR rtl-opt/10692
9958         * reload1.c (do_input_reload): Restrict the optimization deleteing
9959         a previous output reload to RELOAD_FOR_INPUT.
9960
9961 2007-04-17  Dorit Nuzman  <dorit@il.ibm.com>
9962
9963         * tree-vectorizer.h (stmt_vec_info_type): Add enum value
9964         induc_vec_info_type.
9965         (vectorizable_induction): New function declaration.
9966         * tree-vect-transform.c (get_initial_def_for_induction): No need to
9967         check if already vectorized.  Find first place in BB where new stmts
9968         can be inserted.  Takes only one argument.
9969         (vectorizable_induction): New function.
9970         (vect_transform_stmt): Add case for induc_vec_info_type to call
9971         vectorizable_induction.
9972         (vect_transform_loop): Consider phis for vectorization.
9973         * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
9974         condition.
9975         (analyze_operations): Call vectorizable_induction when analyzing phis.
9976         Fix comment.
9977         (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
9978         (vect_mark_relevant): Include phis in relevance analysis.
9979         (vect_mark_stmts_to_be_vectorize): Likewise.
9980         * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.
9981
9982 2007-04-16  Lawrence Crowl  <crowl@google.com>
9983
9984         * doc/invoke.texi (Debugging Options): Add documentation for the
9985         -femit-struct-debug options -femit-struct-debug-baseonly,
9986         -femit-struct-debug-reduced, and
9987         -femit-struct-debug-detailed[=...].
9988
9989         * c-opts.c (c_common_handle_option): Add
9990         OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
9991         and OPT_femit_struct_debug_detailed_.
9992         * c.opt: Add specifications for
9993         -femit-struct-debug-baseonly, -femit-struct-debug-reduced,
9994         and -femit-struct-debug-detailed[=...].
9995         * opts.c (set_struct_debug_option): Parse the
9996         -femit-struct-debug-... options.
9997         * opts.c (matches_main_base, main_input_basename,
9998         main_input_baselength, base_of_path, matches_main_base): Add
9999         variables and functions to compare header base name to compilation
10000         unit base name.
10001         * opts.c (should_emit_struct_debug): Add to determine to emit a
10002         structure based on the option.
10003         (dump_struct_debug) Also disabled function to debug this
10004         function.
10005         * opts.c (handle_options): Save the base name of the
10006         compilation unit.
10007
10008         * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
10009         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
10010         This hook indicates if a type is generic.  Set it by default
10011         to "never generic".
10012         * langhooks.h (struct lang_hooks_for_types): Add a new hook
10013         to determine if a struct type is generic or not.
10014         * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
10015         * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
10016         * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
10017         with live C++ hook.
10018
10019         * flags.h (enum debug_info_usage): Add an enumeration to describe
10020         a program's use of a structure type.
10021         * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
10022         to indicate the program's usage of the type.  Filter structs based
10023         on the -femit-struct-debug-... specification.
10024         (gen_type_die): Split into two routines, gen_type_die and
10025         gen_type_die_with_usage.  gen_type_die is now a wrapper
10026         that assumes direct usage.
10027         (gen_type_die_with_usage): Replace calls to gen_type_die
10028         with gen_type_die_with_usage adding the program usage of
10029         the referenced type.
10030         (dwarf2out_imported_module_or_decl): Suppress struct debug
10031         information using should_emit_struct_debug when appropriate.
10032
10033 2007-04-16  Ian Lance Taylor  <iant@google.com>
10034
10035         PR tree-optimization/31522
10036         * tree-vrp.c (vr_phi_edge_counts): New static variable.
10037         (vrp_initialize): Allocate vr_phi_edge_counts.
10038         (vrp_visit_phi_node): Don't push to infinity if we saw a new
10039         executable edge.  Drop test for all constants.
10040         (vrp_finalize): Free vrp_phi_edge_counts.
10041
10042         * doc/cpp.texi (Common Predefined Macros): Clarify description of
10043         __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
10044
10045         * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
10046         predecessors at head rather than tail.
10047
10048 2007-04-16  Matthias Klose  <doko@debian.org>
10049
10050         * config/alpha/linux.h (CPP_SPEC): Define.
10051         * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
10052
10053 2007-04-16  Aldy Hernandez  <aldyh@redhat.com>
10054
10055         * function.h: Remove sequence_stack extern declaration.
10056
10057 2007-04-16  Kazu Hirata  <kazu@codesourcery.com>
10058
10059         * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
10060         TARGET_FIDOA.
10061         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
10062         defined.
10063
10064 2007-04-16  Anatoly Sokolov <aesok@post.ru>
10065
10066         * config/avr/avr.c (avr_arch_types): Rearranging  array.
10067         (enum avr_arch): Add.
10068         (avr_mcu_types): Use avr_arch enumeration constants instead of
10069         numbers.
10070         * config/avr/avr.h (LINK_SPEC): Simplify.
10071
10072 2007-04-16  Kazu Hirata  <kazu@codesourcery.com>
10073
10074         * config/m68k/m68k.c (m68k_libcall_value,
10075         m68k_function_value): Use macros for register names more.
10076
10077         * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
10078         instead.
10079         (M68K_REGNAME): Use A6_REG.
10080         * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
10081
10082 2007-04-16  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
10083
10084         PR middle-end/28071
10085         * sched-int.h (struct deps): Split field 'pending_lists_length' into
10086         'pending_read_list_length' and 'pending_write_list_length'.  Update
10087         comment.
10088         * sched-deps.c (add_insn_mem_dependence): Change signature.  Update
10089         to handle two length counters instead of one.  Update all uses.
10090         (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
10091         two length counters instead of one.
10092         * sched-rgn.c (propagate_deps): Update to handle two length counters
10093         instead of one.
10094
10095 2007-04-16  H.J. Lu  <hongjiu.lu@intel.com>
10096
10097         PR target/31582
10098         * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
10099         copy of source, pass it to ix86_expand_vector_set and return
10100         it as target.
10101
10102 2007-04-16  David Ung  <davidu@mips.com>
10103             Joseph Myers  <joseph@codesourcery.com>
10104
10105         * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
10106         PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
10107         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
10108         Add 74K processor information.
10109         * config/mips/mips.md: Include 74k.md.
10110         (cpu): Add 74kc,74kf,74kx.
10111         (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
10112         * config/mips/74k.md: New.
10113         * doc/invoke.texi (MIPS Options): Document 74K support.
10114
10115 2007-04-16  Dorit Nuzman  <dorit@il.ibm.com>
10116
10117         * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
10118         vectorizable_* functions.
10119         * tree-vect-transform.c (vectorizable_call): Add check for
10120         STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
10121         (vectorizable_store): likewise.
10122         (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
10123         Add comments.
10124         (vectorizable_operation, vectorizable_type_demotion): Likewise.
10125         (vectorizable_type_promotion, vectorizable_load): Likewise.
10126         (vectorizable_live_operation, vectorizable_condition): Likewise.
10127         (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
10128         STMT_VINFO_LIVE_P.
10129         (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
10130
10131 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
10132
10133         * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
10134         register numbers more.
10135         * config/m68k/m68k.h (STACK_POINTER_REGNUM,
10136         FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
10137         M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
10138         FUNCTION_VALUE_REGNO_P): Likewise.
10139         * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
10140         STATIC_CHAIN_REGNUM): Likewise.
10141         * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
10142         * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
10143         STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
10144         * config/m68k/m68k.md (FP_REG): New.
10145
10146 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
10147
10148         * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
10149         alignment on fido.
10150
10151 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
10152
10153         * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
10154         tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
10155         comment typos.
10156
10157 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
10158
10159         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
10160         cold loops.
10161
10162 2007-04-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10163
10164         PR c/31520
10165         * c-decl.c (finish_decl): Grab the type of the decl after the call
10166         to store_init_value.
10167
10168 2007-04-14  Steven Bosscher  <steven@gcc.gnu.org>
10169
10170         * common.opt (fforward-propagate): Fix "Optimization" annotation.
10171
10172 2007-04-14  Jakub Jelinek  <jakub@redhat.com>
10173
10174         PR c++/25874
10175         * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free
10176         dominators, post dominators and cleanup cfg before returning.
10177
10178 2007-04-14  Bernd Schmidt  <bernd.schmidt@analog.com>
10179
10180         * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
10181         * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
10182
10183 2007-04-14  Kazu Hirata  <kazu@codesourcery.com>
10184
10185         * config.gcc: Recognize fido.
10186         * config/m68k/m68k-devices.def (fidoa): New.
10187         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
10188         __mfido__.
10189         (FL_FIDOA, TARGET_FIDOA): New.
10190         * config/m68k/m68k.opt (mfidoa): New.
10191
10192 2007-04-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10193
10194         PR middle-end/31322
10195         * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
10196         when a personality function is used.
10197
10198 2007-04-13  Bob Wilson  <bob.wilson@acm.org>
10199
10200         * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
10201
10202 2007-04-13  Mike Stump  <mrs@apple.com>
10203
10204         * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
10205         we can...
10206         * config/darwin.opt (fapple-kext): Make C++ only.
10207         * config/darwin.c (darwin_override_options): Remove code to ensure
10208         -fapple-kext is given for C++ only.
10209
10210 2007-04-13  Richard Sandiford  <richard@codesourcery.com>
10211
10212         * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
10213         * config/mips/mips.c (override_options): Call
10214         SUBTARGET_OVERRIDE_OPTIONS, if defined.
10215
10216 2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>
10217
10218         * config/i386/i386.opt (msvr3-shlib): Removed.
10219
10220         * doc/invoke.texi: Remove -msvr3-shlib.
10221
10222 2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>
10223
10224         * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
10225         with "popcnt" instruction.
10226
10227 2007-04-13  Richard Guenther  <rguenther@suse.de>
10228
10229         PR tree-optimization/21258
10230         * tree-vrp.c (compare_case_labels): New helper.
10231         (find_switch_asserts): New function.
10232         (find_assert_locations): Call it for SWITCH_EXPRs.
10233
10234 2007-04-13  Uros Bizjak  <ubizjak@gmail.com>
10235
10236         * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
10237         * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
10238         check is now implied in X87_FLOAT_MODE_P.
10239         (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
10240         (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
10241         (fix_trunc<mode>_i386_fisttp): Ditto.
10242         (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
10243         (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
10244         (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
10245         (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
10246         (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
10247         (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
10248         (unnamed_splitters): Ditto.
10249         * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
10250         for X87_FLOAT_MODE_P mode.  Override FIRST_FLOAT_REG with
10251         FIRST_SSE_REG for local functions when SSE math is enabled or
10252         for functions with sseregparm attribute.
10253         (standard_80387_constant_p): Return -1 if mode is not
10254         X87_FLOAT_MODE_P.
10255         (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
10256         (ix86_expand_compare): Ditto.
10257         (ix86_expand_carry_flag_compare): Ditto.
10258         (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
10259         of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
10260         DECIMAL_FLOAT_MODE_P.
10261         (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
10262         of SCALAR_FLOAT_MODE_P.
10263         (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
10264         [MINUS]: ... here.  Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
10265         checks before FLOAT_MODE_P.
10266         [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
10267         before FLOAT_MODE_P.
10268         [DIV]: Ditto.
10269         [NEG]: Ditto.
10270         [ABS]: Ditto.
10271         [SQRT]: Ditto.
10272         [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
10273
10274 2007-04-12  Paolo Bonzini  <bonzini@gnu.org>
10275             Charles Wilson  <libtool@cwilson.fastmail.fm>
10276
10277         * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
10278         (libgcc.mvars): Don't depend on them.
10279         * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
10280         * exec-tool.in: New.
10281
10282 2007-04-12  Brooks Moses  <brooks.moses@codesourcery.com>
10283
10284         * doc/invoke.text (--help): Document --help=common.
10285
10286 2007-04-12  Thomas Neumann  <tneumann@users.sourceforge.net>
10287
10288         * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
10289
10290 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
10291
10292         * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
10293         * genemit.c (main): Emit #include "integrate.h".
10294         * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
10295         (LOADGP_RTP): New mips_loadgp_style.
10296         * config/mips/mips.h: Include config/vxworks-dummy.h.
10297         (TARGET_RTP_PIC): New macro.
10298         (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
10299         (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
10300         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
10301         for TARGET_RTP_PIC.
10302         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define.  Pass down
10303         -mvxworks-pic when using -mrtp and a PIC option.
10304         * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
10305         for RTP PIC.
10306         (mips_symbolic_constant_p, mips_symbolic_address_p)
10307         (mips_symbol_insns): Handle SYMBOL_HALF.
10308         (override_options): Warn about -G and -mrtp being used together.
10309         Initialize mips_lo_relocs[SYMBOL_HALF].
10310         (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
10311         (mips_emit_loadgp): Handle LOADGP_RTP.
10312         (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
10313         * config/mips/mips.md (loadgp_rtp): New insn and splitter.
10314         (tablejump): Handle function-relative case table entries if
10315         TARGET_RTP_PIC.
10316         * config/mips/predicates.md (symbol_ref_operand): New predicate.
10317
10318 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
10319
10320         * config/mips/mips.md (load_call<mode>): Allow any general register.
10321         destination.
10322         (sibcall_value_internal, sibcall_value_multiple_internal)
10323         (call_value_internal, call_value_split, call_value_multiple_internal)
10324         (call_value_multiple_split): Remove constraints from operand 0.
10325
10326 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
10327
10328         * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
10329         rather than loadgp_noshared.
10330         * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
10331         instead of gen_loadgp_noshared.  Use gen_loadgp_newabi instead of
10332         gen_loadgp.
10333         * config/mips/mips.md (loadgp): Rename to...
10334         (loadgp_newabi): ...this.
10335         (loadgp_noshared): Rename to...
10336         (loadgp_absolute): ...this.
10337
10338 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
10339
10340         * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
10341         false for locally-binding symbols.
10342         (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
10343
10344 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
10345
10346         * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
10347         (SYMBOL_GOT_PAGE_OFST): ...this.
10348         (SYMBOL_GOT_GLOBAL): Rename to...
10349         (SYMBOL_GOT_DISP): ...this.
10350         (SYMBOL_GOTOFF_GLOBAL): Rename to...
10351         (SYMBOL_GOTOFF_DISP): ...this.  Update comments accordingly.
10352         * config/mips/mips.c (mips_global_symbol_p): New function.
10353         (mips_symbol_binds_local_p): Likewise.
10354         (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
10355         and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST.  Use
10356         mips_global_symbol_p and mips_symbol_binds_local_p.
10357         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
10358         (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
10359         SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
10360         SYMBOL_GOTOFF_DISP.
10361         (mips_ok_for_lazy_binding_p): New function.
10362         (mips_load_call_address, mips_expand_call): Use it.
10363         (mips_dangerous_for_la25_p): Likewise.
10364         * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
10365         (*got_disp<mode>): Use got_disp_operand instead of
10366         global_got_operand.  Use SYMBOL_GOTOFF_DISP instead of
10367         SYMBOL_GOTOFF_GLOBAL.
10368         (*got_page<mode>): Use got_page_ofst_operand instead of
10369         local_got_operand.
10370         * config/mips/predicates.md (const_call_insn_operand): Use
10371         SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
10372         (global_got_operand): Rename to...
10373         (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
10374         SYMBOL_GOT_GLOBAL.
10375         (local_got_operand): Rename to...
10376         (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
10377         of SYMBOL_GOT_LOCAL.
10378
10379 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
10380
10381         * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
10382         TARGET_CALL_CLOBBERED_GP.
10383         (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
10384         (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
10385         (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
10386         (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
10387         of TARGET_ABICALLS && !TARGET_NEWABI.
10388         (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
10389         * config/mips/mips.c (mips_load_call_address): Check
10390         TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
10391         (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
10392         Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
10393         (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
10394         TARGET_ABICALLS && TARGET_NEWABI.
10395         (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
10396         TARGET_ABICALLS.
10397         (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
10398         (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
10399         TARGET_ABICALLS && TARGET_NEWABI.
10400         (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
10401         TARGET_ABICALLS.  Check TARGET_CALL_SAVED_GP instead of
10402         TARGET_NEWABI.  Use TARGET_USE_PIC_FN_ADDR_REG to decide
10403         whether indirect calls must use $25.
10404         (mips_extra_live_on_entry): Check TARGET_GOT instead of
10405         TARGET_ABICALLS.
10406         * config/mips/mips.md (jal_macro): Check flag_pic and
10407         TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
10408         (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
10409         instead of TARGET_ABICALLS.
10410         (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
10411         TARGET_ABICALLS && TARGET_OLDABI.
10412         (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
10413         (sibcall): In the comment above the define_insn, mention
10414         TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
10415         * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
10416         instead of TARGET_ABICALLS.
10417
10418 2007-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
10419
10420         * doc/md.texi (Blackfin family constraints): Document PA and PB.
10421         * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
10422         (MACFLAGS_MATCH_P): New macro.
10423         * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
10424         (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
10425         * config/bfin/bfin.md (MACFLAG_IS_M): New constant.  Renumber some of
10426         the other MACFLAG constants.
10427         (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
10428         (flag_machi): Tighten constraints.  Renumber some of the operands.
10429         (flag_machi_acconly): Tighten constraints.  Correct operand numbers in
10430         output template.
10431         (flag_machi_parts_acconly): New pattern.
10432         (flag_macinithi): Tighten constraints.  Allow any accumulator to be
10433         used.
10434         (flag_macinit1hi): Tighten constraints.
10435         (flag_mul_macv2hi_parts_acconly): New pattern.
10436
10437         * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
10438         Use a more efficient implementation.
10439         * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
10440         inline sequences when not optimizing for size.
10441
10442         * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
10443         movhi_high2low): Delete, merge functionality into...
10444         (packv2hi): ... this pattern.
10445
10446         2007-02-11  Jie Zhang  <jie.zhang@analog.com>
10447         * config/bfin/bfin.opt (msim): New option.
10448         (mcpu=): New option.
10449         * config/bfin/bfin-protos.h (enum bfin_cpu): New.
10450         (bfin_cpu_t): Typedef of enum bfin_cpu.
10451         (bfin_cpu_type): New declaration.
10452         * config/bfin/elf.h (STARTFILE_SPEC): Add support for
10453         -msim and -mcpu= options.
10454         (LIB_SPEC): Likewise.
10455         * config/bfin/bfin.c (bfin_cpu_type): Define.
10456         (bfin_handle_option): Handle -mcpu= option.
10457         * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
10458         (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
10459         __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
10460
10461 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
10462
10463         * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
10464         (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
10465         (powerpc-wrs-vxworksae): Use ${tm_file}.
10466         (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
10467         after elfos.h.  Remove i386/sysv4.h and add i386/vx-common.h.
10468         * config/i386/vx-common.h: New file.
10469
10470 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
10471
10472         * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
10473         of crt0.o%s.
10474
10475 2007-04-12  Andreas Krebbel  <krebbel1@de.ibm.com>
10476
10477         * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
10478         ldxtr.
10479
10480 2007-04-12  Douglas Gregor  <doug.gregor@gmail.com>
10481
10482         PR c++/31078
10483         PR c++/31103
10484         * c-common.c (c_build_qualified_type): Set canonical type
10485         appropriately.
10486
10487 2007-04-12  Richard Guenther  <rguenther@suse.de>
10488
10489         * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
10490         lower bound and element size if lower bound is not zero
10491         or either of the ARRAY_REF operands is set.
10492
10493 2007-04-12  Richard Guenther  <rguenther@suse.de>
10494
10495         PR tree-optimization/24689
10496         PR tree-optimization/31307
10497         * fold-const.c (operand_equal_p): Compare INTEGER_CST array
10498         indices by value.
10499         * gimplify.c (canonicalize_addr_expr): To be consistent with
10500         gimplify_compound_lval only set operands two and three of
10501         ARRAY_REFs if they are not gimple_min_invariant.  This makes
10502         it never at this place.
10503         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
10504
10505 2007-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10506
10507         * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
10508         null before emitting a .nsubspa directive.
10509
10510 2007-04-11  Diego Novillo  <dnovillo@redhat.com>
10511
10512         * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
10513         need_to_partition_p if there are no memory statements in the
10514         function.
10515
10516 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
10517
10518         * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
10519         (gcd_of_steps_may_divide_p): New function.
10520         (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
10521
10522 2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
10523
10524         * reload.c (find_reloads_toplev, find_reloads_address,
10525         find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
10526         not a pointer equality test, to decide if we need to call
10527         push_reg_equiv_alt_mem.
10528
10529 2007-04-11  Sebastian Pop  <sebastian.pop@inria.fr>
10530
10531         * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
10532         insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps):
10533         New.
10534         (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
10535
10536 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
10537
10538         * tree-data-ref.c (add_multivariate_self_dist): Force the distance
10539         vector to be positive.
10540
10541 2007-04-11  Diego Novillo  <dnovillo@redhat.com>
10542
10543         PR 30735
10544         PR 31090
10545         * doc/invoke.texi: Document --params max-aliased-vops and
10546         avg-aliased-vops.
10547         * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
10548         debug_memory_partitions): Move to tree-flow.h
10549         * params.h (AVG_ALIASED_VOPS): Define.
10550         * tree-ssa-alias.c (struct mp_info_def): Remove.  Update all
10551         users.
10552         (mp_info_t): Likewise.
10553         (get_mem_sym_stats_for): New.
10554         (set_memory_partition): Move from tree-flow-inline.h.
10555         (mark_non_addressable): Only clear the set of symbols for the
10556         partition if it exists.
10557         (dump_memory_partitions): Move from tree-ssa-operands.c
10558         (debug_memory_partitions): Likewise.
10559         (need_to_partition_p): New.
10560         (dump_mem_ref_stats): New.
10561         (debug_mem_ref_stats): New.
10562         (dump_mem_sym_stats): New.
10563         (debug_mem_sym_stats): New.
10564         (update_mem_sym_stats_from_stmt): New.
10565         (compare_mp_info_entries): New.
10566         (mp_info_cmp): Call it.
10567         (sort_mp_info): Change argument to a list of mem_sym_stats_t
10568         objects.
10569         (get_mpt_for): Move from tree-ssa-operands.c.
10570         (find_partition_for): New.
10571         (create_partition_for): Remove.
10572         (estimate_vop_reduction): New.
10573         (update_reference_counts): New.
10574         (build_mp_info): New.
10575         (compute_memory_partitions): Refactor.
10576         Document new heuristic.
10577         Call build_mp_info, update_reference_counts,
10578         find_partition_for and estimate_vop_reduction.
10579         (compute_may_aliases): Populate virtual operands before
10580         calling debugging dumps.
10581         (delete_mem_sym_stats): New.
10582         (delete_mem_ref_stats): New.
10583         (init_mem_ref_stats): New.
10584         (init_alias_info): Call it.
10585         (maybe_create_global_var): Remove alias_info argument.
10586         Get number of call sites and number of pure/const call sites
10587         from gimple_mem_ref_stats().
10588         (dump_alias_info): Call dump_memory_partitions first.
10589         (dump_points_to_info_for): Show how many times a pointer has
10590         been dereferenced.
10591         * opts.c (decode_options): For -O2 set --param
10592         max-aliased-vops to 500.
10593         For -O3 set --param max-aliased-vops to 1000 and --param
10594         avg-aliased-vops to 3.
10595         * fortran/options.c (gfc_init_options): Remove assignment to
10596         MAX_ALIASED_VOPS.
10597         * tree-flow-inline.h (gimple_mem_ref_stats): New.
10598         * tree-dfa.c (dump_variable): Dump memory reference
10599         statistics.
10600         Dump NO_ALIAS* settings.
10601         (referenced_var_lookup): Tidy.
10602         (mem_sym_stats): New.
10603         * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
10604         and ORIG are different SSA names for a memory partition.
10605         * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
10606         * tree-flow.h (struct mem_sym_stats_d): Define.
10607         (mem_sym_stats_t): Define.
10608         (struct mem_ref_stats_d): Define.
10609         (struct gimple_df): Add field mem_ref_stats.
10610         (enum noalias_state): Define.
10611         (struct var_ann_d): Add bitfield noalias_state.
10612         (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
10613         debug_mem_ref_stats, debug_memory_partitions,
10614         debug_mem_sym_stats): Declare.
10615         * tree-ssa-structalias.c (update_alias_info): Update call
10616         sites, pure/const call sites and asm sites in structure
10617         returned by gimple_mem_ref_stats.
10618         Remove local variable IS_POTENTIAL_DEREF.
10619         Increase NUM_DEREFS if the memory expression is a potential
10620         dereference.
10621         Call update_mem_sym_stats_from_stmt.
10622         If the memory references memory, call
10623         update_mem_sym_stats_from_stmt for all the direct memory
10624         symbol references found.
10625         (intra_create_variable_infos): Set noalias_state field for
10626         pointer arguments according to the value of
10627         flag_argument_noalias.
10628         * tree-ssa-structalias.h (struct alias_info): Remove fields
10629         num_calls_found and num_pure_const_calls_found.
10630         (update_mem_sym_stats_from_stmt): Declare.
10631         * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
10632         Set default value to 100.
10633         (PARAM_AVG_ALIASED_VOPS): Define.
10634
10635 2007-04-11  Richard Guenther  <rguenther@suse.de>
10636
10637         PR middle-end/31530
10638         * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
10639         a * -b + c as c - a * b if we honor sign dependent rounding.
10640
10641 2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
10642
10643         * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
10644         bfin_expand_strmov.
10645         * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
10646         bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
10647         variables.
10648         (initialize_trampoline): Don't use old-style function definition.
10649         (bfin_secondary_reload): Mark IN_P argument as unused.
10650
10651 2007-04-10  Sebastian Pop  <sebastian.pop@inria.fr>
10652
10653         PR tree-optimization/31343
10654         * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
10655         (build_polynomial_chrec): Return a scalar when the evolution is zero.
10656         * testsuite/gcc.dg/vect/pr31343.c: New.
10657
10658 2007-04-10  Eric Christopher  <echristo@apple.com>
10659
10660         * config/i386/i386.h (X87_FLOAT_MODE_P): New.
10661         * config/i386/i386.md (*cmpfp0): Use.
10662         (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
10663         (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
10664         (fix_trunc<mode>_i386_fisttp): Ditto.
10665         (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
10666         (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
10667         (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
10668         (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
10669         (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
10670         (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
10671         (unnamed_splitters): Ditto.
10672         * config/i386/i386.c (output_fix_trunc): Assert that
10673         we're not being passed a TFmode operand.
10674
10675 2007-04-10  Zdenek Dvorak  <dvorakz@suse.cz>
10676
10677         PR tree-optimization/31526
10678         * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
10679         n_basic_blocks to find newly added blocks.
10680
10681 2007-04-10  Uros Bizjak  <ubizjak@gmail.com>
10682
10683         * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
10684         alternative.
10685         (fix_trunc<mode>si_sse): Ditto.
10686         (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
10687         (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
10688         (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
10689         (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
10690         (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
10691         expander using SSEMODEF mode macro.
10692         (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
10693         expander using SSEMODEF mode macro.
10694         (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
10695         *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
10696         (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
10697         *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
10698         (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
10699         *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
10700         (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
10701         Macroize insn using X87MODEF mode macro.
10702
10703 2007-04-09  H.J. Lu  <hongjiu.lu@intel.com>
10704
10705         * config/i386/sse.md (sse2_pinsrw): Removed.
10706         (sse2_pextrw): Renamed to ...
10707         (*sse2_pextrw): This.
10708
10709 2007-04-09  Jan Hubicka  <jh@suse.cz>
10710
10711         PR target/27869
10712         * config/i386/sse.md
10713         (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
10714         (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
10715         (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
10716         (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
10717
10718 2007-04-09  Jan Hubicka  <jh@suse.cz>
10719
10720         * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
10721         multiple fields of union.
10722
10723 2007-04-09  Zdenek Dvorak  <dvorakz@suse.cz>
10724
10725         * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
10726         (create_preheaders): Check that loops are available.
10727         (fix_loop_structure): Clean up, improve comments.
10728         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
10729         Check that loops are available.  Set LOOP_CLOSED_SSA to the loops
10730         state flags.
10731         * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
10732         * predict.c (tree_estimate_probability): Do not call
10733         calculate_dominance_info.  Call create_preheaders.
10734         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
10735         rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
10736         flags.
10737         * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
10738         * cfgloop.h (LOOP_CLOSED_SSA): New constant.
10739         * tree-cfg.c (tree_split_edge): Make an assert more precise.
10740         * tree-ssa-threadedge.c (thread_across_edge): Comment the function
10741         arguments.
10742
10743 2007-04-08  Jan Hubicka  <jh@suse.cz>
10744
10745         * tree.h (maybe_fold_offset_to_component_ref): Declare.
10746         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
10747         * fold-const.c (fold_unary): Use it.
10748
10749 2007-04-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10750
10751         * varasm.c (assemble_variable): Remove call to
10752         lang_hooks.decls.prepare_assemble_variable.
10753         * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
10754         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
10755         * langhooks.h (lang_hooks_for_decls): Remove
10756         prepare_assemble_variable.
10757
10758 2007-04-08  Mike Stump  <mrs@apple.com>
10759
10760         * config/i386/i386.c: Use inc/dec on Core2.
10761
10762 2007-04-08  Steven Bosscher  <steven@gcc.gnu.org>
10763
10764         * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
10765         lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
10766         lhd_tree_inlining_end_inlining): Remove.
10767         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
10768         add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
10769         end_inlining hooks.
10770         * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
10771         lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
10772         lhd_tree_inlining_end_inlining): Remove prototypes.
10773         (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
10774         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
10775         LANG_HOOKS_TREE_INLINING_START_INLINING,
10776         LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
10777
10778         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
10779         not set it.
10780
10781 2007-04-08  Anatoly Sokolov <aesok@post.ru>
10782
10783         PR target/29932
10784         * config/avr/predicates.md (io_address_operand): Delete predicate.
10785         (low_io_address_operand): Don't use 'mode' argument.
10786         (higth_io_address_operand): Rename ...
10787         (high_io_address_operand): ... to this. Don't use 'mode' argument.
10788         * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
10789         for above change.
10790
10791 2007-04-07  Daniel Berlin  <dberlin@dberlin.org>
10792
10793         Revert change removing staticp.
10794
10795 2007-04-07  Anatoly Sokolov <aesok@post.ru>
10796
10797         PR target/30289
10798         * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
10799         earlyclobber.
10800
10801 2007-04-07  Bruce Korb  <bkorb@gnu.org>
10802
10803         * c.opt: Add -Wformat-contains-nul.
10804         * c-format.c (set_Wformat):  Set warn_format_contains_nul to the
10805           -Wformat setting.
10806         (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
10807         the NUL byte warning.
10808
10809 2007-04-07  H.J. Lu  <hongjiu.lu@intel.com>
10810
10811         * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
10812
10813 2007-04-06  Daniel Berlin  <dberlin@dberlin.org>
10814
10815         * tree.c (staticp): No longer use staticp langhook.
10816         * langhooks.c (lhd_staticp): Removed.
10817         * langhooks.h (struct lang_hooks): Remove staticp.
10818         * c-common.c (c_staticp): Remove.
10819         * c-common.h (c_staticp): Ditto.
10820         * langhooks-defs.h (lhd_staticp): Ditto.
10821         (LHD_HOOKS_STATICP): Ditto
10822         * tree.h (gcc_assert_lowered): New macro.
10823
10824 2007-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
10825
10826         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
10827         argument "reliable".
10828         (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
10829         Add argument "reliable".  Propagate it through calls.
10830         (infer_loop_bounds_from_undefined):  Derive number of iterations
10831         estimates from references in blocks that do not dominate loop latch.
10832         (gcov_type_to_double_int): New function.
10833         (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
10834         and expected_loop_iterations_unbounded.
10835         * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
10836         (expected_loop_iterations): Use expected_loop_iterations_unbounded.
10837         * tree-data-ref.c (estimated_loop_iterations): Export.
10838         (get_references_in_stmt): Fix -- do not return addresses of local
10839         objects.
10840         * cfgloop.h (expected_loop_iterations_unbounded,
10841         estimated_loop_iterations): Declare.
10842
10843 2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>
10844
10845         * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
10846
10847 2007-04-06  Uros Bizjak  <ubizjak@gmail.com>
10848
10849         * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
10850         and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
10851         (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
10852         Use output_387_reg_move().
10853         (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
10854         expander using X87MODEF12 mode macro.
10855         (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
10856         choosing register preferences.  Use output_387_reg_move().
10857         (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
10858         instead of "x".  Use output_387_reg_move().
10859         (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
10860         *truncxfdf2_i387_noop.  Macroize insn using X87MODEF12 mode macro.
10861         (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
10862         *truncxfdf2_i387.  Macroize insn using X87MODEF12 mode macro.
10863         Use output_387_reg_move().
10864         (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
10865         mode macro.
10866         (*truncxf?f_i387 splitter): Ditto.
10867
10868 2007-04-06  Daniel Berlin  <dberlin@dberlin.org>
10869
10870         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
10871         LANG_HOOKS_SAFE_FROM_P.
10872         * expr.c (safe_from_p): Remove langhook call.
10873         * langhooks.h (lang_hooks): Remove safe_from_p.
10874         (lhd_safe_from_p): Remove prototype.
10875         * langhooks.c (lhd_safe_from_p): Remove.
10876
10877 2007-04-06  Jan Hubicka  <jh@suse.cz>
10878
10879         * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
10880         functions.
10881
10882 2007-04-06  Uros Bizjak  <ubizjak@gmail.com>
10883
10884         * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
10885         * config/i386/i386.md (*movsf_1, *movdf_nointeger,
10886         *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
10887         *movxf_integer): Use output_387_reg_move() for x87 reg->mem
10888         alternative.
10889         (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
10890         *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
10891
10892 2007-04-05  Richard Henderson  <rth@redhat.com>
10893
10894         * config/alpha/alpha.c (print_operand) [+]: Remove.
10895         (alpha_end_function): Print nop if call at end of function.
10896         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
10897         * config/alpha/alpha.md (UNSPEC_LDGP1): New.
10898         (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
10899         (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
10900         (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
10901         the call pattern. Update peepholes to match.
10902
10903 2007-04-05  Janis Johnson  <janis187@us.ibm.com>
10904
10905         * doc/extend.texi (Other Builtins): Add decimal float variants
10906         of signbit.
10907         * builtins.def: Ditto.
10908         * builtins.c (expand_builtin): Ditto.
10909
10910 2007-04-05  Uros Bizjak  <ubizjak@gmail.com>
10911             H.J. Lu  <hongjiu.lu@intel.com>
10912
10913         PR target/31478
10914         * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
10915         of V8HImode when calling ix86_binary_operator_ok.
10916         (sse2_pmaddwd): Call ix86_binary_operator_ok.
10917         (sdot_prodv8hi): Operands 1 and 2 must be register.
10918
10919 2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
10920
10921         * tree-sra.c (try_instantiate_multiple_fields): Needlessly
10922         initialize align to silence bogus warning.
10923
10924 2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
10925
10926         PR middle-end/22156
10927         * tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
10928         all_no_warning.
10929         (struct sra_walk_fns): Remove use_all parameter from use.
10930         (sra_hash_tree): Handle BIT_FIELD_REFs.
10931         (sra_elt_hash): Don't hash bitfld blocks.
10932         (sra_elt_eq): Skip them in parent compares as well.  Handle
10933         BIT_FIELD_REFs.
10934         (sra_walk_expr): Don't maintain or pass down use_all_p.
10935         (scan_use): Remove use_all parameter.
10936         (scalarize_use): Likewise.  Re-expand assignment to
10937         BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
10938         output, and re-scalarize after output.  Don't mark anything
10939         for no warning.
10940         (scalarize_ldst): Adjust.
10941         (scalarize_walk_gimple_modify_statement): Likewise.
10942         (build_element_name_1): Handle BIT_FIELD_REFs.
10943         (instantiate_element): Don't warn for any element whose parent
10944         is used as a whole.
10945         (instantiate_missing_elements_1): Return the sra_elt.
10946         (canon_type_for_field): New.
10947         (try_instantiate_multiple_fields): New.
10948         (instantiate_missing_elemnts): Use them.
10949         (mark_no_warning): Removed.
10950         (generate_one_element_ref): Handle BIT_FIELD_REFs.
10951         (REPLDUP, sra_build_elt_assignment): New.
10952         (generate_copy_inout): Use them.
10953         (generate_element_copy): Likewise.  Handle bitfld differences.
10954         (generate_element_zero): Don't recurse for blocks.  Use
10955         sra_build_elt_assignment.
10956         (generate_one_element_int): Take elt instead of var.  Use
10957         sra_build_elt_assignment.
10958         (generate_element_init_1): Adjust.
10959         (scalarize_use, scalarize_copy): Use REPLDUP.
10960         (scalarize_ldst): Move assert before dereference.
10961         (dump_sra_elt_name): Handle BIT_FIELD_REFs.
10962
10963 2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>
10964
10965         * regmove.c: Fix unused variable warnings due to previous commit.
10966
10967 2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>
10968
10969         * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
10970         (regmove_bb_head): Remove.
10971         (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
10972         (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
10973         problems with fixup_match_1.
10974         Don't initialize/free regmove_bb_head.
10975
10976         (reg_is_remote_constant_p): If an insn is in the same basic block
10977         but not before INSN, consider it remote, too.
10978
10979 2007-04-05  Anatoly Sokolov <aesok@post.ru>
10980
10981         PR target/25448
10982         * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
10983         DECL_ASSEMBLER_NAME, not the DECL_NAME.
10984
10985 2007-04-05  H.J. Lu  <hongjiu.lu@intel.com>
10986
10987         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
10988         (CONDITIONAL_REGISTER_USAGE): Likewise.
10989
10990 2007-04-04  Richard Henderson  <rth@redhat.com>
10991
10992         * config/alpha/lib1funcs.asm: Remove unused file.
10993
10994 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
10995
10996         PR other/31356
10997         * opts.c (print_specific_help): Fix --help=<language>
10998         header line.
10999         (common_handle_option): Support --help=common.
11000
11001 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
11002
11003         PR other/31353
11004         * gcc.c (main): Do not run the linker if
11005         print_subprocess_help indicates that it shouldn't be
11006         run.
11007
11008 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
11009
11010         PR doc/31355
11011         * doc/invoke.texi (--help=): Document <languages> value, fix
11012         formatting in tables of values.
11013
11014 2007-04-04  Danny Smith  <dannysmith.users.sourceforge.net>
11015
11016         * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
11017         dllimport attribute of virtual methods.
11018
11019 2007-04-04  Chen Liqin  <liqin@sunnorth.com.cn>
11020
11021         * config/score/crti.asm: Change _bss_start to __bss_start.
11022         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
11023         (OUTGOING_REG_PARM_STACK_SPACE) update.
11024         * config/score/score.opt: add options to make backend support
11025         score5, score5u, score7 and score7d.
11026         * config/score/score.md: Likewise.
11027         * config/score/misc.md: Likewise.
11028         * config/score/mac.md: Likewise.
11029         * doc/invoke.texi: Likewise.
11030         * doc/md.texi: update constraints define.
11031
11032 2007-04-03  Richard Henderson  <rth@redhat.com>
11033
11034         * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
11035         an appropriate type, use the mode instead.
11036
11037 2007-04-03  Richard Sandiford  <richard@codesourcery.com>
11038
11039         * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
11040         Set the default --with-arch setting to mips2.
11041         * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
11042         (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
11043         (MULTILIB_OSDIRNAMES): Delete.
11044         (MULTILIB_DIRNAMES): Define.
11045         * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
11046         (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
11047         (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
11048         definitions, except for _WRS_R3K_EXC_SUPPORT.  Call
11049         VXWORKS_OS_CPP_BUILTINS.
11050         (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
11051         (MIPS_DEBUGGING_INFO): Undefine.
11052         (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
11053
11054 2007-04-03  Jakub Jelinek  <jakub@redhat.com>
11055
11056         PR middle-end/30704
11057         * fold-const.c (native_encode_real): Encode real.c provided longs
11058         as a series of 32-bit native integers.
11059         (native_interpret_real): Interpret buffer as a series of 32-bit
11060         native integers.
11061
11062 2007-04-03  Richard Guenther  <rguenther@suse.de>
11063
11064         * genpreds.c (write_insn_constraint_len): Write function
11065         optimized for CONSTRAINT_LEN implementation.
11066         (write_tm_preds_h): Output insn_constraint_len inline and
11067         use it for CONSTRAINT_LEN.
11068         (write_insn_preds_c): Don't output insn_constraint_len.
11069         * doc/md.texi (define_register_constraint): Document multi-letter
11070         constraints shall have the same length if they start with the same
11071         letter.
11072
11073 2007-04-03  Uros Bizjak  <ubizjak@gmail.com>
11074
11075         PR target/31175
11076         * config/i386/i386.md (isinf<mode>2): Expand only when
11077         TARGET_C99_FUNCTIONS is set.
11078
11079 2007-04-03  Uros Bizjak  <ubizjak@gmail.com>
11080
11081         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
11082         (x86_64-*-linux*): Ditto.
11083         * config/i386/i386.opt (mpc): New option.
11084         * config/i386/i386.c (overrride_options): Handle
11085         ix87_precision_string.
11086         * config/i386/crtprec.c: New file.
11087         * config/i386/t-crtpc: Ditto.
11088         * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
11089         and -mpc80 options.
11090         * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
11091         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
11092         crtprec32.o, crtprec64.o and crtprec80.o.
11093
11094         * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
11095         and -mpc80 options.
11096         (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
11097
11098 2007-04-02  Eric Christopher  <echristo@apple.com>
11099
11100         * doc/invoke.texi (i386 and x86-64 Options): Document -m64
11101         limitations on darwin.
11102
11103 2007-04-02  Anatoly Sokolov <aesok@post.ru>
11104
11105         PR target/31137
11106         * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
11107
11108 2007-04-02  Dave Korn  <dave.korn@artimi.com>
11109
11110         * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
11111
11112 2007-04-02  Dave Korn  <dave.korn@artimi.com>
11113
11114         * libgcc2.h (exception_descriptor): Don't forward-declare.
11115         (__get_eh_table_language, __get_eh_table_version): Delete
11116         prototypes of long-dead functions.
11117
11118 2007-04-01  Daniel Berlin  <dberlin@dberlin.org>
11119
11120         * ebitmap.h: New file
11121         * ebitmap.c: New file
11122         * Makefile.in (ebitmap.o): New target.
11123
11124 2007-04-01  Jan Hubicka  <jh@suse.cz>
11125
11126         * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
11127         before very first instruction.
11128
11129 2007-04-01  Jan Hubicka  <jh@suse.cz>
11130
11131         * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
11132         waring on 64bit hosts.
11133         * bitmap.h: Fix typo in bitmap_head_def.
11134
11135 2007-04-01  Steven Bosscher  <steven@gcc.gnu.org>
11136
11137         PR rtl-optimization/31391
11138         * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
11139         into a DELETED_LABEL note, and the label is in an empty basic
11140         block, update BB_END as well as BB_HEAD.
11141
11142 2007-04-01  Richard Henderson  <rth@redhat.com>
11143
11144         PR tree-optimization/31169
11145         * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
11146         to varying if the range is outside [0,  prec-1].
11147
11148 2007-04-01  Richard Sandiford  <richard@codesourcery.com>
11149
11150         PR target/31388
11151         * config/mips/mips.md (load_const_gp): New insn.
11152         * config/mips/mips.c (mips_split_symbol): Avoid using or creating
11153         the MIPS16 GP pseudo register if no_new_pseudos.
11154         (mips16_gp_pseudo_reg): Use gen_load_const_gp.
11155
11156 2007-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11157
11158         PR target/31364
11159         * config/rs6000/rs6000.md (call): Convert to LR hard reg for
11160         secureplt.
11161         (call_value): Likewise.
11162
11163 2007-03-31  Wolfgang Bangerth  <bangerth@dealii.org>
11164             Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11165
11166         PR 14737
11167         * doc/invoke.texi: (optimization options): Reword description
11168         of -ffast-math. Document its primary purpose.
11169
11170 2007-03-31  Richard Guenther  <rguenther@suse.de>
11171
11172         * omp-low.c (splay-tree.h): Include.
11173         (lookup_decl): Replace splay-tree usage by pointer-map.
11174         (maybe_lookup_decl): Likewise.
11175         (new_omp_context): Likewise.
11176         (delete_omp_context): Likewise.
11177         * gimplify.c (splay-tree.h): Include.
11178         * tree-inline.c (insert_decl_map): Replace splay-tree usage by
11179         pointer-map.
11180         (remap_ssa_name): Likewise.
11181         (remap_decl): Likewise.
11182         (remap_type_1): Likewise.
11183         (remap_type): Likewise.
11184         (copy_body_r): Likewise.
11185         (expand_call_inline): Likewise.
11186         (clone_body): Likewise.
11187         (copy_tree_r): Likewise.
11188         (remap_save_expr): Likewise.
11189         (unsave_r): Likewise.
11190         (unsave_expr_now): Likewise.
11191         (tree_function_versioning): Likewise.
11192         (build_duplicate_type): Likewise.
11193         * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
11194         (struct copy_body_data): Replace splay-tree by pointer-map.
11195         * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
11196         not $(SPLAY_TREE_H).
11197         (gimplify.o): Depend on $(SPLAY_TREE_H).
11198         (omp-low.p): Likewise.
11199
11200 2007-03-31  Anatoly Sokolov <aesok@post.ru>
11201
11202         * config/avr/predicates.md (even_register_operand,
11203         odd_register_operand): New predicates.
11204         * config/avr/avr.md (movw peephole2): New.
11205         (movw_r peephole2): New.
11206
11207 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
11208
11209         * tree.h (get_signed_or_unsigned_type): New.
11210         * fold-const.c (operand_equal_for_comparison_p): Use
11211         get_signed_or_unsigned_type instead of
11212         lang_hooks.types.signed_or_unsigned_type.
11213         * expr.c (store_expr): Ditto.
11214         * langhooks.c (get_signed_or_unsigned_type): New.
11215         (lhd_signed_or_unsigned_type): New.
11216         * langhooks.h (lhd_signed_or_unsigned_type): New.
11217         * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
11218
11219 2007-03-30  Richard Henderson  <rth@redhat.com>
11220
11221         * tree-ssa-loop-ivopts.c: Include target.h.
11222         (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
11223         (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
11224         (force_expr_to_var_cost): Use produce_memory_decl_rtl.
11225         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
11226
11227 2007-03-30  Richard Henderson  <rth@redhat.com>
11228             Kai Tietz  <kai.tietz@onevision.com>
11229
11230         * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
11231         default for 64-bit.
11232         (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
11233         (TARGET_64BIT_MS_ABI): New.
11234         (DBX_REGISTER_NUMBER): Handle 64-bit.
11235         (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
11236         (LONG_TYPE_SIZE): Force to 32.
11237         (REG_PARM_STACK_SPACE): New.
11238         (OUTGOING_REG_PARM_STACK_SPACE): New.
11239         (REGPARM_MAX, SSE_REGPARM_MAX): New.
11240         (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
11241         (STACK_BOUNDARY): Use 128 for 64-bit.
11242         * config/i386/cygwin.asm: Use push/ret to preserve call stack.
11243         Add 64-bit implementation.
11244         * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
11245         argument unused.
11246         * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
11247         (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
11248         Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
11249         for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
11250         (ix86_handle_cconv_attribute): Don't warn when ignoring if
11251         TARGET_64BIT_MS_ABI.
11252         (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
11253         (ix86_pass_by_reference): Likewise.
11254         (ix86_function_value_regno_p): Likewise.
11255         (ix86_build_builtin_va_list): Likewise.
11256         (ix86_va_start, ix86_gimplify_va_arg): Likewise.
11257         (function_arg_advance_ms_64): New.
11258         (function_arg_advance): Call it.
11259         (function_arg_ms_64): New.
11260         (function_arg): Call it.
11261         (function_value_ms_64): New.
11262         (ix86_function_value_1): Call it.
11263         (return_in_memory_ms_64): New.
11264         (ix86_return_in_memory): Call it.
11265         (setup_incoming_varargs_ms_64): New.
11266         (ix86_setup_incoming_varargs): Call it.
11267         (ix86_expand_prologue): Handle 64-bit stack probing.
11268         (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
11269         (output_pic_addr_const): Likewise.
11270         (x86_this_parameter): Likewise.
11271         (x86_output_mi_thunk): Likewise.
11272         (x86_function_profiler): Likewise.
11273         (TARGET_STRICT_ARGUMENT_NAMING): New.
11274         * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
11275         (TARGET_64BIT_MS_ABI): New.
11276         (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
11277         * config/i386/i386.md (allocate_stack_worker): Remove.
11278         (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
11279         describe the clobber of eax without a match_scratch.
11280         (allocate_stack_worker_postreload): Remove.
11281         (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
11282         describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
11283         (allocate_stack_worker_rex64_postreload): Remove.
11284         (allocate_stack): Handle 64-bit.
11285         * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
11286         * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
11287         (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
11288         (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
11289         (STANDARD_STARTFILE_PREFIX_1): Likewise.
11290         * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
11291         * config.build (x86_64-*-mingw*): New host.
11292         * config.host (x86_64-*-mingw*): New host.
11293         * config.gcc (x86_64-*-mingw*): New target.
11294         * gthr-win32.h (__gthread_key_create): Mark dtor unused.
11295
11296 2007-03-30  Richard Henderson  <rth@redhat.com>
11297             Kai Tietz  <kai.tietz@onevision.com>
11298
11299         * c-pragma.c (struct def_pragma_macro_value): New.
11300         (struct def_pragma_macro): New.
11301         (pushed_macro_table): New.
11302         (dpm_hash, dpm_eq): New.
11303         (handle_pragma_push_macro, handle_pragma_pop_macro): New.
11304         (init_pragma): Install them.
11305         * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
11306
11307 2007-03-30  Anatoly Sokolov <aesok@post.ru>
11308
11309         * config/avr/avr.c (avr_override_options): Clear
11310         'flag_delete_null_pointer_checks'.
11311
11312 2007-03-30  Paolo Carlini  <pcarlini@suse.de>
11313
11314         PR c++/26099
11315         * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
11316         RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
11317         RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
11318         RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
11319         RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
11320         RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
11321         RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
11322         C++ extensions.
11323         * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
11324
11325 2007-03-30  Steven Bosscher  <steven@gcc.gnu.org>
11326
11327         * regmove.c: Move all of pass_stack_adjustments from here...
11328         * combine-stack-adj.c: ...to this new file.
11329         * Makefile.in: Add rules for combine-stack-adj.o.
11330
11331 2007-03-30  Zdenek Dvorak  <dvorakz@suse.cz>
11332
11333         PR tree-optimization/31383
11334         * tree-data-ref.c (affine_function_equal_p): Do not require the
11335         vectors to have the same length.
11336
11337 2007-03-30  Jan Hubicka  <jh@suse.cz>
11338
11339         PR middle-end/30700
11340         * dwarf2out.c (reference_to_unused): Ask cgraph for functions
11341         availablility; add more sanity checking; ask varpool only about
11342         VAR_DECL.
11343
11344 2007-03-29  Richard Henderson  <rth@redhat.com>
11345
11346         * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
11347         to decide, but __SIZEOF_LONG_LONG__.
11348
11349 2007-03-29  Richard Henderson  <rth@redhat.com>
11350
11351         * emutls.c (struct __emutls_array): New.
11352         (emutls_destroy): Use it instead of casting element 0 from void*.
11353         (__emutls_get_address): Likewise.
11354
11355 2007-03-29  Richard Henderson  <rth@redhat.com>
11356
11357         * varasm.c (initializer_constant_valid_p): Don't deny
11358         DECL_DLLIMPORT_P on functions.
11359
11360         * config/i386/cygming.h: Remove function declarations.
11361         (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
11362         (ASM_OUTPUT_LABELREF): Remove.
11363         (COMMON_ASM_OP): Remove.
11364         (ASM_OUTPUT_COMMON): Remove.
11365         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
11366         (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
11367         (ASM_DECLARE_FUNCTION_NAME): Likewise.
11368         * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
11369         Rename from TARGET_ENCODE_SECTION_INFO.
11370         * config/i386/netware.h: Likewise.
11371         * config/i386/i386-protos.h: Update.
11372         * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
11373         of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
11374         (legitimate_constant_p): Reject dllimports.
11375         (dllimport_map, get_dllimport_decl): New.
11376         (legitimize_dllimport_symbol): New.
11377         (legitimize_address, ix86_expand_move): Use it.
11378         (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
11379         * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
11380         (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
11381         (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
11382         * config/i386/predicates.md (constant_call_address_operand): Only
11383         accept symbols; reject dllimport_p symbols.
11384         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
11385         i386_pe_maybe_record_exported_symbol.
11386         * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
11387         (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
11388         (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
11389         trust the setting of DECL_DLLIMPORT_P.
11390         (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
11391         (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
11392         (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
11393         tidy the argument scanning loop.
11394         (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
11395         SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
11396         (i386_pe_strip_name_encoding): Remove.
11397         (i386_pe_binds_local_p): New.
11398         (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
11399         (i386_pe_output_labelref): Remove.
11400         (i386_pe_asm_output_aligned_decl_common): New.
11401         (i386_pe_maybe_record_exported_symbol): Rename from
11402         i386_pe_record_exported_symbol; check for dllexported symbols.
11403
11404 2007-03-29  Zack Weinberg  <zack@mrtock.ucsd.edu>
11405
11406         * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
11407         add comment explaining why vsnprintf cannot be used.
11408
11409 2007-03-29  Douglas Gregor  <doug.gregor@gmail.com>
11410
11411         PR tree-optimization/30666
11412         * tree.c (build_complex_type): When creating type names for DWARF2
11413         debug info, create TYPE_DECLs for TYPE_NAME instead of
11414         IDENTIFIER_NODEs.
11415         (build_common_tree_nodes_2): Use build_complex_type when building
11416         predefined complex types, to preserve canonical types.
11417
11418 2007-03-29  Steven Bosscher  <steven@gcc.gnu.org>
11419
11420         * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
11421         (noce_get_alt_condition): Look at it to determine whether to
11422         reverse the condition or not.
11423         (noce_get_condition): Substitute the truth for lies.
11424         (noce_find_if_block): Set the then_else_reversed field.
11425
11426 2007-03-29  Lars Poeschel <larsi@wh2.tu-dresden.de>
11427
11428         * config/fr30/fr30.md (movdi): Do not accept immediates as the
11429         destination of this insn.
11430         * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
11431         than calling gen_rtx_SET directly.  Use r0 to hold the value of
11432         'address + 4' rather than a stack based temporary which can be
11433         mis-optimized away.
11434
11435 2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
11436
11437         * config/s390/s390.c (s390_secondary_input_reload_class,
11438         s390_secondary_output_reload_class): Functions removed.
11439         (s390_secondary_reload): New function.
11440         (TARGET_SECONDARY_RELOAD): Target macro defined.
11441         * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
11442         SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
11443         * config/s390/s390.md ("reload_outti", "reload_outdi",
11444         "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
11445         "reload_out<mode>"): Expanders removed.
11446         ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
11447         "reload<mode>_nonoffmem_out"): Expanders added.
11448
11449 2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
11450
11451         * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair
11452         action if SRC->DEST replacement failed anyway.
11453
11454 2007-03-28  Mike Stump  <mrs@apple.com>
11455
11456         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
11457         * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
11458         * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
11459
11460 2007-03-28  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
11461
11462         * config.gcc: Accept barcelona as a variant of amdfam10.
11463         * config/i386/i386.c (override_options): Likewise.
11464         * doc/invoke.texi: Likewise.
11465
11466 2007-03-28  Eric Botcazou  <ebotcazou@adacore.com>
11467
11468         * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
11469         offsets for BIT_FIELD_REF and COMPONENT_REF.
11470
11471 2007-03-28  Richard Guenther  <rguenther@suse.de>
11472
11473         * tree.c (is_global_var): Move ...
11474         * tree-flow-inline.h (is_global_var): ... here.
11475         * tree.h (is_global_var): Remove declaration.
11476
11477 2007-03-28  Uros Bizjak  <ubizjak@gmail.com>
11478
11479         * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
11480         option.
11481         (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
11482         * config/i386/i386.c (ix86_tune_features): Initialize new
11483         tuning option.
11484         * config/i386/predicates.md (promotable_binary_operator): Use
11485         TARGET_TUNE_PROMOTE_HIMODE_IMUL.
11486
11487 2007-03-28  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
11488
11489         PR target/31380
11490         * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
11491
11492 2007-03-28  Lars Poeschel <larsi@wh2.tu-dresden.de>
11493
11494         * config/fr30/fr30.md (movsi_internal): Change destination
11495         constraint from m to V and add m to the end.
11496
11497 2007-03-28  Christian Bruel  <christian.bruel@st.com>
11498
11499         * config/sh/sh.md (movsi_i): Fix type attribute.
11500
11501 2007-03-28  Christian Bruel  <christian.bruel@st.com>
11502
11503         * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
11504         (movsf_ie): Likewise.
11505
11506 2007-03-28  Christian Bruel  <christian.bruel@st.com>
11507
11508         * config.gcc: Add sh4-300 to multilib.
11509         * config/sh/t-mlib-sh4-300: New file.
11510
11511 2007-03-28  Andreas Krebbel  <krebbel1@de.ibm.com>
11512
11513         * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
11514         ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
11515         fix_trunc<mode>di2.
11516         ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
11517         fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
11518         ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
11519         "fixuns_trunctddi2"): Whitespace fix.
11520
11521 2007-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
11522
11523         * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
11524         the definition of struct sh_args.
11525         (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
11526         CALL_COOKIE_INT_REG_GET): Likewise.
11527
11528 2007-03-28  Steven Bosscher  <steven@gcc.gnu.org>
11529
11530         * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
11531         transformations are applied successfully.
11532
11533 2007-03-27  Douglas Gregor  <doug.gregor@gmail.com>
11534
11535         * tree.c (tree_contains_struct): Permit 512 tree codes.
11536         * tree.h (tree_contains_struct): Ditto.
11537         (MAX_TREE_CODES): Ditto.
11538         (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
11539         SPARE member to store remaining padding bits.
11540
11541 2007-03-27  Anatoly Sokolov <aesok@post.ru>
11542
11543         * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
11544         architecture.
11545
11546 2007-03-27  Janis Johnson  <janis187@us.ibm.com>
11547
11548         * configure.ac: Fix assembler test for powerpc*-linux decimal float.
11549         * configure: Regenerate.
11550
11551         * configure: Regenerate using the correct version of autoconf.
11552
11553 2007-03-27  Anatoly Sokolov  <aesok@post.ru>
11554
11555         * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
11556         pointer regs.
11557         * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
11558         regs to "__SP_L__" and "__SP_H__".
11559
11560 2007-03-27  Richard Guenther  <rguenther@suse.de>
11561
11562         * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
11563         computations with it with a HOST_WIDE_INT variable.
11564
11565 2007-03-26  Mike Stump  <mrs@apple.com>
11566
11567         * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
11568         objective-c-header, objective-c++-header and objc++-cpp-output
11569         support.
11570         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
11571
11572 2007-03-26  Richard Henderson  <rth@redhat.com>
11573
11574         PR target/31361
11575         * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
11576         IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
11577         IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
11578         IX86_BUILTIN_PSRLQ128): New.
11579         (ix86_init_mmx_sse_builtins): Add them.
11580         (ix86_expand_builtin): Expand them.
11581         * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
11582         operand 2 be TImode.
11583         * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
11584         _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
11585         _mm_srli_epi64): Mark __B const.
11586         (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
11587         (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
11588         _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
11589         new two-vector shift builtins.
11590
11591 2007-03-26  Ian Lance Taylor  <iant@google.com>
11592
11593         PR tree-optimization/31345
11594         * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
11595         [+INF, +INF(OVF)] into VARYING.
11596
11597 2007-03-26  Zack Weinberg  <zackw@panix.com>
11598
11599         * gengtype-parse.c: New file.
11600         * gengtype-yacc.y: Delete.
11601         * gengtype-lex.l: Don't include gengtype-yacc.h.
11602         Define YY_DECL and yyterminate appropriately for recursive
11603         descent parser.  yylval is now a string out-parameter to yylex.
11604         (HWS, EOID): New shorthand.
11605         (IWORD): Add a couple more types.
11606         (yylex): Add a setup stanza.  Remove the complex rules for
11607         detecting GTY'ed types and typedefs; replace with simple
11608         keyword detectors.  Adjust everything for the changed
11609         definition of yylval.  Ignore all pp-directives, not just #define.
11610         (yyerror): Delete.
11611         (parse_file): Rename yybegin; do not call yyparse.
11612         (yyend): New.
11613         * gengtype.c (xasprintf): Export again.
11614         (this_file): New.  Use everywhere __FILE__ was being used.
11615         (get_lang_bitmap): Special case types defined in gengtype.c.
11616         (do_typedef, new_structure): Suppress definition of certain types.
11617         (new_structure): Improve diagnostics of duplicate definitions.
11618         Make sure location_s is associated with input.h.
11619         (nreverse_pairs, define_location_structures): New functions.
11620         (main): Improve tagging of kludge types.  Remove old kludges
11621         for input.h types; use define_location_structures.
11622         * gengtype.h: Update prototypes.  Define token codes here.
11623         * Makefile.in: Remove all references to gengtype-yacc.
11624         Add rules for gengtype-parse.o.  Adjust rules for gengtype-lex.o
11625         and gengtype.
11626         * bitmap.h (struct bitmap_head_def): Coalesce definitions,
11627         add GTY((skip)) to the field that's only conditionally there.
11628         * doc/install.texi: Document that Bison is no longer required
11629         unless building treelang.
11630
11631         * gengtype.c: Don't include gtyp-gen.h.
11632         (srcdir): Declare here.
11633         (base_files, lang_dir_names): Allocate dynamically.
11634         (gt_files, num_gt_files, num_lang_dirs): New globals.
11635         (measure_input_list, read_input_line, read_input_list)
11636         (set_lang_bitmap): New functions.
11637         (get_base_file_bitmap): Rename get_lang_bitmap and drastically
11638         simplify, relying on read_input_list to set up the bitmaps.
11639         (main): Arguments are no longer unused.  Check for correct number
11640         of command line arguments, set srcdir and srcdir_len, then call
11641         read_input_list, before doing anything else.  No need to worry
11642         about duplicates in main loop.
11643         * configure.ac: Simplify the calculation of all_gtfiles.
11644         Put language tags in there.  Don't set or substitute
11645         all_gtfiles_files_langs or all_gtfiles_files_frags.
11646         * Makefile.in: Revamp the way gengtype is invoked, now that it
11647         takes a file on its command line with a much simpler format.
11648         Remove or replace with gtyp-input.list all references to gtyp-gen.h.
11649         (GTFILES): Remove duplicates and C source files.
11650         * c-config-lang.in, cp/config-lang.in, objc/config-lang.in
11651         * objcp/config-lang.in: Add c-pragma.h to gtfiles.
11652         * configure: Regenerate.
11653
11654         * gengtype.h: Remove all type definitions to gengtype.c; leave
11655         only definitions of options_p, type_p, and pair_p as opaque
11656         pointers.  Update prototypes.
11657         * gengtype.c: Many type definitions moved here from gengtype.h.
11658         Consolidate type definitions at the top of the file.
11659         (xvasprintf): Delete.
11660         (xasprintf): Make static.
11661         (create_nested_pointer_option): Add 'next' parameter.
11662         (create_field_all, create_field_at): New functions.
11663         (create_field): Now a thin wrapper around create_field_all.
11664         (create_optional_field): Rename create_optional_field_ and add
11665         line argument.  Original name is now a macro which supplies
11666         __LINE__.
11667         (oprintf): Use vsnprintf directly.
11668         (close_output_files): Use fatal rather than perror/exit.
11669         (note_def_vec, note_def_vec_alloc): Use create_field_at.
11670         (main): Set progname.  Don't use exit.
11671         * gengtype-yacc.y (struct_fields): Use create_field_at.
11672         (option, optionseqopt): Delete.
11673         (optionseq): Consolidate productions from option here so we
11674         can use the first argument to create_option.
11675
11676         * gengtype-lex.l: Distinguish unions from structures in the
11677         token type.  Don't call find_structure; return the tag as a string.
11678         * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and
11679         ENT_UNION.  Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is
11680         string.  Reorganize typedef_struct production accordingly.
11681         Use create_nested_ptr_option.
11682         * gengtype.c (create_nested_ptr_option): New function.
11683         * gengtype.h: Declare it.
11684
11685         * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
11686         (string_type): Don't declare.
11687         (do_scalar_typedef): Declare.
11688         (create_scalar_type): Update prototype.
11689         * gengtype.c (string_type): Make static.
11690         (scalar_nonchar, scalar_char): New.
11691         (do_scalar_typedef): Export.  Always use scalar_nonchar for the type.
11692         (resolve_typedef): Use scalar_nonchar for error recovery.
11693         (create_scalar_type): Remove name_len field.  Return scalar_char
11694         or scalar_nonchar as appropriate.
11695         (adjust_field_type): Look at scalar_is_char boolean to decide whether
11696         to use string_type.
11697         (throughout): Use scalar_nonchar instead of calling
11698         create_scalar_type, whenever possible.
11699         (main): Initialize scalar_char and scalar_nonchar before calling
11700         gen_rtx_next.
11701         * gengtype-lex.l: Adjust for removal of second argument to
11702         create_scalar_type.  Use yylval.s instead of yylval.t when
11703         returning SCALAR.
11704         * gengtype-yacc.y: Type of SCALAR is string.  Call
11705         create_scalar_type from type:SCALAR rule.  Adjust for removal of
11706         second argument to create_scalar_type.
11707
11708         * vec.h: Remove all #if IN_GENGTYPE blocks.
11709         Add comment saying that changes may require adjustments to gengtype.
11710         * gengtype.c: Don't include coretypes.h or tm.h.
11711         Add comment to inclusion of errors.h.
11712         (note_def_vec, note_def_vec_alloc): New functions.
11713         * gengtype.h: Declare new functions.
11714         * gengtype-lex.l: Don't include coretypes.h.
11715         (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
11716         Delete.
11717         (update_lineno): Remove unnecessary prototype.
11718         (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
11719         (VEC rule): Just return VEC_TOKEN.
11720         * gengtype-yacc.y (VEC_TOKEN): New token type.
11721         (type): Add a production for VEC(a,b).
11722         * Makefile.in: Update dependencies.
11723
11724         * gengtype-lex.l: Remove rules for parsing pointer-to-function
11725         typedefs that use the old PARAMS macro.
11726
11727         * gengtype-lex.l: Remove all rules and states relating to yacc
11728         input files.
11729         * gengtype-yacc.y: Similarly.
11730         * gengtype.c (note_yacc_type): Delete function.
11731         * gengtype.h: Update prototypes.
11732
11733 2007-03-26  Joseph Myers  <joseph@codesourcery.com>
11734
11735         * tree-pretty-print.c (dump_generic_node): Report precision of
11736         unnamed integer types.
11737
11738 2007-03-26  Steven Bosscher  <steven@gcc.gnu.org>
11739
11740         * ifcvt.c (noce_try_store_flag_constants): Don't check
11741         no_new_pseudos here.
11742         (noce_try_store_flag_constants): Don't check no_new_pseudos.
11743         (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
11744         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
11745         noce_try_sign_mask): Likewise.
11746         (if_convert): Check no_new_pseudos here.
11747
11748         (cond_exec_process_if_block, noce_process_if_block, find_if_block):
11749         Remove prototypes.
11750         (struct noce_if_info): Add then_bb, else_bb, join_bb members.
11751         (noce_get_condition): Handle new then_else_reversed argument.
11752         (noce_init_if_info): Remove, fold into noce_find_if_block.
11753         (noce_process_if_block): Take a struct noce_if_info as the
11754         argument.  Don't set up one based on ce_if_info.  Update pointer
11755         references accordingly.
11756         (cond_move_process_if_block): Likewise.
11757         (process_if_block): Removed.
11758         (find_if_block): Removed.  Move functionality two new functions,
11759         noce_find_if_block and cond_exec_find_if_block.
11760         (noce_find_if_block): New function.  Be aware of IF-THEN-JOIN
11761         blocks and the symmetric IF-ELSE-JOIN case.
11762         (cond_exec_find_if_block): Also new function mostly based on old
11763         find_if_block and process_if_block.
11764         (find_if_header): Replace find_if_block call with separately
11765         guarded calls to noce_find_if_block and cond_exec_find_if_block.
11766         (find_cond_trap): Update noce_get_condition call.
11767         (dead_or_predicable): Likewise.
11768
11769 2007-03-26  Jakub Jelinek  <jakub@redhat.com>
11770
11771         * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
11772         Remove.
11773         (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
11774         IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
11775         IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
11776         (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
11777         v4si_ftype_v4si_v2di.  Remove __builtin_ia32_psllw128,
11778         __builtin_ia32_pslld128, __builtin_ia32_psllq128,
11779         __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
11780         __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
11781         __builtin_ia32_psrad128 builtins.
11782
11783 2007-03-26  Uros Bizjak  <ubizjak@gmail.com>
11784
11785         * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
11786         * config/i386/constraints.md
11787         (define_constraint "I"): Use IN_RANGE macro.
11788         (define_constraint "J"): Ditto.
11789         (define_constraint "K"): Ditto.
11790         (define_constraint "M"): Ditto.
11791         (define_constraint "N"): Ditto.
11792         (define_constraint "O"): Ditto.
11793         * config/i386/predicates.md
11794         (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
11795         (define_predicate "const_0_to_3_operand"): Ditto.
11796         (define_predicate "const_0_to_7_operand"): Ditto.
11797         (define_predicate "const_0_to_15_operand"): Ditto.
11798         (define_predicate "const_0_to_63_operand"): Ditto.
11799         (define_predicate "const_0_to_255_operand"): Ditto.
11800         (define_predicate "const_1_to_31_operand"): Ditto.
11801         (define_predicate "const_2_to_3_operand"): Ditto.
11802         (define_predicate "const_4_to_7_operand"): Ditto.
11803
11804 2007-03-25  David Edelsohn  <edelsohn@gnu.org>
11805
11806         * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
11807         in SImode for save_world.
11808         * config/rs6000/altivec.md (save_world, restore_world): Convert to
11809         LR hard reg.
11810
11811 2007-03-25  Dorit Nuzman  <dorit@il.ibm.com>
11812
11813         PR tree-optimization/30784
11814         * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
11815         BIT_FIELD_REF.
11816
11817 2007-03-25  Revital Eres  <eres@il.ibm.com>
11818
11819         * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
11820           Fold movement_possibility function into it.
11821
11822 2007-03-25  David Edelsohn  <edelsohn@gnu.org>
11823
11824         * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
11825         (load_macho_picbase_{si,di}): Convert to LR hard reg.
11826         (call_indirect_nonlocal_darwin64): Same.
11827         (call_nonlocal_darwin64): Same.
11828         (call_value_indirect_nonlocal_darwin64): Same.
11829         (call_value_nonlocal_darwin64): Same.
11830         (sibcall_nonlocal_darwin64): Same.
11831         (sibcall_value_nonlocal_darwin64): Same.
11832         (sibcall_symbolic_64): Same.
11833         (sibcall_value_symbolic_64): Same.
11834         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
11835         LR pseudo.
11836         (rs6000_emit_load_toc_table): Same.
11837         * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
11838         * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
11839         (mull_call): Same.
11840         (divss_call): Same.
11841         (divus_call): Same.
11842         (quoss_call): Same.
11843         (quous_call): Same.
11844         (load_toc_v4_pic_si): Same
11845         (load_toc_v4_PIC_1): Same.
11846         (load_toc_v4_PIC_1b): Same.
11847         (call_indirect_aix{32,64}): Same.
11848         (call_value_indirect_aix{32,64}): Same.
11849         (call): Same.
11850         (call_value): Same.
11851         (call_local{32,64}): Same.
11852         (call_value_local{32,64}): Same.
11853         (call_indirect_nonlocal_aix{32,64}): Same.
11854         (call_nonlocal_aix{32,64}): Same.
11855         (call_value_indirect_nonlocal_aix{32,64}): Same.
11856         (call_value_nonlocal_aix{32,64}): Same.
11857         (call_indirect_nonlocal_sysv<mode>): Same.
11858         (call_nonlocal_sysv<mode>): Same.
11859         (call_value_indirect_nonlocal_sysv<mode>): Same.
11860         (call_value_nonlocal_sysv<mode>): Same.
11861         (sibcall): Same.
11862         (sibcall_local{32,64}): Same.
11863         (sibcall_value_local{32,64}): Same.
11864         (sibcall_nonlocal_aix{32,64}): Same.
11865         (sibcall_value_nonlocal_aix{32,64}): Same.
11866         (sibcall_nonlocal_sysv<mode>): Same.
11867         (sibcall_value): Same.
11868         (sibcall_value_nonlocal_sysv<mode>): Same.
11869
11870 2007-03-24  Paul Brook  <paul@codesourcery.com>
11871
11872         * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
11873         * config/arm/linux-eabi.h: Remove legacy syscall hack.
11874
11875 2007-03-24  Richard Henderson  <rth@redhat.com>
11876
11877         * config/ia64/constraints.md: New file.
11878         * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
11879         satisfies_constraint_?.
11880         * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
11881         ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
11882         ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
11883         ia64_output_mi_thunk): Likewise.
11884         (ia64_const_ok_for_letter_p): Remove.
11885         (ia64_const_double_ok_for_letter_p): Remove.
11886         (ia64_extra_constraint): Remove.
11887         * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
11888         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
11889         CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
11890         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
11891         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
11892         EXTRA_MEMORY_CONSTRAINT): Remove.
11893         * config/ia64/ia64.md: Include constriants.md.  Replace
11894         CONST_OK_FOR_? with satisfies_constraint_?.
11895
11896 2007-03-23  Michael Meissner  <michael.meissner@amd.com>
11897             H.J. Lu  <hongjiu.lu@intel.com>
11898
11899         * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
11900         DPD or BID name.
11901         (name macros): Use DPD_BID_NAME to convert names properly.
11902
11903         * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
11904         decimal floating point format.
11905         (init_floating_libfuncs): Change decimal functions so that they
11906         have a "bid_" prefix if the decimal system uses the BID format,
11907         and "dpd_" prefix if the decimal system uses the DPD format.
11908         (init_interclass_conv_libfuncs): Ditto.
11909         (init_intraclass_conv_libfuncs): Ditto.
11910
11911         * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
11912         using the BID format.
11913
11914         * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
11915         whether we are using the BID decimal format.
11916         * configure: Regenerate.
11917
11918         * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
11919         the compiler has decimal floating point enabled.  Define
11920         __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
11921         instead of DPD.
11922
11923         * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
11924         using the BID format.
11925
11926         * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
11927         whether we are using the BID decimal format.
11928         * configure: Regenerate.
11929
11930         * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
11931         the compiler has decimal floating point enabled.  Define
11932         __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
11933         instead of DPD.
11934
11935         * doc/install.texi (--enable-decimal-float): Document BID and DPD
11936         options, and that it is enabled for i386/x86_64 systems.
11937
11938         * Makefile.in (enable_decimal_float): New.
11939         (DECNUMFMT): New.
11940         (DECNUMINC): Add  -I$(DECNUMFMT).
11941         (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
11942         to $(DECNUMFMT) from $(DECNUM).
11943
11944         * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
11945         Substitute enable_decimal_float.
11946         * configure: Regenerated.
11947
11948         PR other/30529
11949         * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
11950         unsigned long.
11951
11952         * configure.ac: Enable decimal float for x86_64-*-linux*.
11953         * configure: Regenerated.
11954
11955         PR other/30530
11956         * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
11957         decimal128ClearSign to flip and clear the sign bit in decimal128.
11958         (decimal_real_maxval): Set decimal128SetSign to set the sign
11959         bit in decimal128.
11960
11961 2007-03-23  Ian Lance Taylor  <iant@google.com>
11962
11963         * fold-const.c (fold_binary): Correct warning for X - c >= X.
11964
11965 2007-03-23  Ian Lance Taylor  <iant@google.com>
11966
11967         * tree-dump.c (dump_files): Correct comment.
11968
11969 2007-03-23  Ian Lance Taylor  <iant@google.com>
11970
11971         * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
11972
11973 2007-03-23  Steven Bosscher  <steven@gcc.gnu.org>
11974
11975         * tracer.c (tracer): Don't take FLAGS argument.  Assert we are
11976         in cfglayout mode.  Don't go into and out of cfglayout mode.
11977         Link the blocks in the order of the constructed traces.
11978         (rest_of_handle_tracer): Adjust call to tracer.
11979         * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
11980         Don't go into cfglayout mode.
11981         (rtl_loop_done): Don't go out of cfglayout mode.
11982         * cfglayout.c (relink_block_chain): New function, split out from...
11983         (fixup_reorder_chain): ...here.  Remove redundant checking.
11984         (cfg_layout_finalize): Don't clear the header, footer, and aux
11985         fields here, move the code to do so to relink_block_chain.  Likewise
11986         for free_original_copy_tables.
11987         * rtl.h (tracer): Update prototype.
11988         * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
11989         Assert we are in cfglayout mode.  Don't go into and out of cfglayout
11990         mode.  Use relink_block_chain to serialize the CFG according to the
11991         new basic block order.  Move targetm.cannot_modify_jumps_p check from
11992         here...
11993         (gate_handle_reorder_blocks): ...to here.
11994         (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
11995         from here...
11996         (gate_duplicate_computed_gotos): ...to here.
11997         (rest_of_handle_reorder_blocks): Don't see if anything has changed,
11998         something always changes when going into and out of cfglayout mode.
11999         Perform an expensive cfg cleanup while going into cfglayout mode.
12000         Always update liveness information on HAVE_conditional_execution
12001         targets.  Reserialize the basic blocks and go out of cfglayout mode.
12002         * reg-stack.c: Include cfglayout.h.
12003         (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
12004         the call to reorder_basic_blocks.
12005         * basic-block.h (reorder_basic_blocks): Update prototype.
12006         (relink_block_chain): New prototype.
12007         * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
12008
12009 2007-03-23  Joseph Myers  <joseph@codesourcery.com>
12010
12011         * config/mips/mips.md (type, hazard, *movdi_32bit,
12012         *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
12013         *movhi_internal, *movqi_internal, *movsf_hardfloat,
12014         *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
12015         movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
12016         mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
12017         applicable.
12018         (movcc): Change first xfer to multi.
12019         * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
12020         config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
12021         config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
12022         config/mips/generic.md: Change reservations using "xfer" to use
12023         "mfc,mtc".
12024         * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
12025         using match_operand.
12026         (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
12027         * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
12028         examining mode.
12029         (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
12030
12031 2007-03-22  Richard Henderson  <rth@redhat.com>
12032
12033         * config/i386/i386.c: Remove unnecessary function declarations.
12034         Move targetm definition, and all related macros, to the end of
12035         the file.  Resort some functions to put definitions before uses.
12036         (ix86_attribute_table): Make static.  Move to end of file.
12037         (ix86_gimplify_va_arg): Make static.
12038
12039 2007-03-22  Richard Henderson  <rth@redhat.com>
12040
12041         * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
12042         don't increase local_regparm with force_align_arg_pointer check.
12043         (ix86_function_sseregparm): Assert 32-bit.
12044         (type_has_variadic_args_p): New.
12045         (ix86_return_pops_args): Early exit for 64-bit.  Reindent; use
12046         type_has_variadic_args_p.
12047         (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
12048         (init_cumulative_args): Remove TARGET_DEBUG_ARG.  Remove zero_cum;
12049         use memset instead.  Do maybe_vaarg check first; skip attribute
12050         tests if true; skip attribute tests for 64-bit.
12051         (construct_container): Remove TARGET_DEBUG_ARG.
12052         (function_arg_advance_32, function_arg_advance_64): Split out ...
12053         (function_arg_advance): ... from here.
12054         (function_arg_32, function_arg_64): Split out ...
12055         (function_arg): ... from here.
12056         (ix86_pass_by_reference): Tidy.
12057         (ix86_function_value_regno_p): Rearrange w/ switch on regno.
12058         (function_value_32): New, from parts of ix86_function_value
12059         and ix86_value_regno.
12060         (function_value_64): New, from parts of ix86_function_value
12061         and ix86_libcall_value.
12062         (ix86_function_value_1): New.
12063         (ix86_function_value, ix86_libcall_value): Use it.
12064         (return_in_memory_32, return_in_memory_64): Split out ...
12065         (ix86_return_in_memory): ... from here.
12066         (ix86_struct_value_rtx): Skip for 64-bit.
12067         (ix86_libcall_value, ix86_value_regno): Remove.
12068         (setup_incoming_varargs_64): Split out ...
12069         (ix86_setup_incoming_varargs): ... from here.
12070         (ix86_va_start): Remove TARGET_DEBUG_ARG.
12071         (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
12072         * config/i386/i386-protos.h (ix86_function_value): Remove.
12073         * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
12074
12075 2007-03-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12076
12077         PR other/23572
12078         * c-lex.c (interpret_float): On overflow, emit pedantic warning if
12079         infinities not supported, otherwise emit warning if -Woverflow. On
12080         underflow, emit warning if -Woverflow.
12081         * real.c (real_from_string): Return -1 if underflow, +1 if overflow
12082         and 0 otherwise.
12083         * real.h (real_from_string): Update declaration
12084
12085 2007-03-22  Kai Tietz  <kai.tietz@onevision.com>
12086             Richard Henderson  <rth@redhat.com>
12087
12088         * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
12089         * calls.c (compute_argument_block_size, expand_call,
12090         emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
12091         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
12092         * function.c (STACK_DYNAMIC_OFFSET): Likewise.
12093         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
12094         * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
12095         config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
12096         config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
12097         config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
12098         Set to 1.
12099
12100 2007-03-22  Joseph Myers  <joseph@codesourcery.com>
12101
12102         * c-incpath.c (add_sysroot_to_chain): New.
12103         (merge_include_chains): Add sysroot argument.  Call
12104         add_sysroot_to_chain if sysrooted.
12105         (register_include_chains): Update call to merge_include_chains.
12106         * doc/cppopts.texi: Document use of '=' in include directory
12107         arguments.
12108
12109 2007-03-22  Uros Bizjak  <ubizjak@gmail.com>
12110
12111         * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
12112         Macroize expander using SSEMODEF mode macro.  Use SSE_FLOAT_MODE_P.
12113         (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
12114         insn pattern using X87MODEF12 mode macro.
12115
12116 2007-03-21  Seongbae Park <seongbae.park@gmail.com>
12117
12118         * regmove.c (regmove_optimize): Use reg_mentioned_p
12119         instead of reg_overlap_mentioned_p for DST.
12120
12121 2007-03-21  Mike Stump  <mrs@apple.com>
12122
12123         * c.opt: Fixup for Objective-C/C++.
12124
12125 2007-03-21  Steve Ellcey  <sje@cup.hp.com>
12126
12127         * explow.c (convert_memory_address): Fold memory reference when
12128         POINTERS_EXTEND_UNSIGNED < 0
12129
12130 2007-03-21  Richard Henderson  <rth@redhat.com>
12131
12132         PR target/31245
12133         * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
12134         * config/i386/mmintrin.h (__m64): Likewise.
12135         * config/i386/xmmintrin.h (__m128): Likewise.
12136
12137 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
12138
12139         * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
12140         (VXWORKS_OS_CPP_BUILTINS): Define.
12141         * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
12142         (TARGET_OS_CPP_BUILTINS): ...here.  Use VXWORKS_OS_CPP_BUILTINS.
12143
12144 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
12145
12146         * rtl.h (constant_pool_reference_p): Delete.
12147         (find_constant_src): Declare.
12148         * rtlanal.c (find_constant_src): New function.
12149         * simplify-rtx.c (constant_pool_reference_p): Delete.
12150         * config/i386/i386.md: Use find_constant_src instead of
12151         constant_pool_reference_p/avoid_constant_pool_reference pairs.
12152
12153 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
12154
12155         * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
12156         * c-cppbuiltin.c (c_cpp_builtins): Define them.
12157
12158 2007-03-20  Mark Mitchell  <mark@codesourcery.com>
12159
12160         * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
12161         * config/arm/arm.c (arm_elf_asm_cdtor): New function.
12162         (arm_elf_asm_constructor): Use it.
12163         (arm_elf_asm_destructor): New function.
12164
12165 2007-03-20  Bernd Schmidt  <bernd.schmidt@analog.com>
12166
12167         * jump.c (mark_jump_label): Treat SEQUENCE specially.
12168
12169 2007-03-20  Nathan Sidwell  <nathan@codesourcery.com>
12170
12171         * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
12172
12173 2007-03-19  Andrew Haley  <aph@redhat.com>
12174
12175         PR tree-optimization/31264
12176         * tree-vrp.c (register_edge_assert_for_1): Don't look though
12177         VIEW_CONVERT_EXPRs.
12178
12179 2007-03-19  Paolo Bonzini  <bonzini@gnu.org>
12180
12181         PR rtl-optimization/30907
12182         * fwprop.c (forward_propagate_into): Never propagate inside a loop.
12183         (fwprop_init): Always call loop_optimizer_initialize.
12184         (fwprop_done): Always call loop_optimizer_finalize.
12185         (fwprop): We always have loop info now.
12186         (gate_fwprop_addr): Remove.
12187         (pass_fwprop_addr): Use gate_fwprop as gate.
12188
12189         PR rtl-optimization/30841
12190         * df-problems.c (df_ru_local_compute, df_rd_local_compute,
12191         df_chain_alloc): Call df_reorganize_refs unconditionally.
12192         * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
12193         refs_organized to refs_organized_size.
12194         (df_ref_create_structure): Use refs_organized_size instead of
12195         bitmap_size if refs had been organized, and keep refs_organized_size
12196         up-to-date.
12197         * df.h (struct df_ref_info): Change refs_organized to
12198         refs_organized_size.
12199         (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
12200         bitmap_size.
12201
12202 2007-03-19  Mark Mitchell  <mark@codesourcery.com>
12203
12204         * except.c (output_function_exception_table): Do not reference the
12205         EH personality routine for functions that do not require an
12206         exception table.
12207
12208 2007-03-20  Jakub Jelinek  <jakub@redhat.com>
12209
12210         PR c/30762
12211         * c-typeck.c (convert_for_assignment): Call comptypes for
12212         RECORD_TYPE or UNION_TYPE.
12213
12214         PR inline-asm/30505
12215         * reload1.c (reload): Do invalid ASM checking after
12216         cleanup_subreg_operands.
12217
12218 2007-03-19  Jeff Law  <law@redhat.com>
12219
12220         * tree-cfg.c (find_taken_edge): Tighten conditions for
12221         optimizing computed gotos.
12222
12223 2007-03-19  Michael Matz  <matz@suse.de>
12224
12225         * builtins.c (expand_builtin_sync_operation,
12226         expand_builtin_compare_and_swap,
12227         expand_builtin_lock_test_and_set): Care for extending CONST_INTs
12228         correctly.
12229
12230         * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
12231         sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
12232         for operand 3.
12233
12234 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
12235
12236         * doc/tm.texi: Add brackets around the return type of
12237         TARGET_SECONDARY_RELOAD.
12238
12239 2007-03-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12240         Richard Guenther  <rguenther@suse.de>
12241
12242         PR tree-optimization/31254
12243         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
12244         Use handled_component_p () where appropriate.  Continue
12245         propagating into the rhs if we propagated into an INDIRECT_REF
12246         on the lhs.
12247
12248 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
12249
12250         * config/s390/s390.md (op_type attribute): RRR instruction type added.
12251         (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
12252         (xde, xdee): Mode attributes adjusted to support DFP modes.
12253         (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
12254         ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
12255         DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
12256         "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
12257         "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
12258         "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
12259         "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
12260         numbers.
12261         ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
12262         "movsf"): Insn definitions removed.
12263         ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
12264         "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
12265         "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
12266         definitions added.
12267         ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
12268         "reload_in<mode>", "reload_out<mode>"): Expander added.
12269         ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
12270         Expander removed.
12271
12272 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
12273
12274         * config/s390/s390.md: Only non-functional changes.  Renamed
12275         FPR mode macro to BFP all over the file.
12276
12277 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
12278
12279         * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
12280         (op_type attribute): RRF instruction type added.
12281         (fT0): New mode attribute.
12282         ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
12283         "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
12284         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new
12285         instruction no secondary memory is needed when moving DFmode values
12286         between GPRs and FPRs.
12287
12288 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
12289
12290         * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
12291         inverted and documentation adjusted.
12292         ("mhard-dfp", "msoft-dfp"): New options.
12293         * config/s390/s390.c (s390_handle_arch_option): New architecture
12294         switch: z9-ec.
12295         (override_options): Sanity checks for the new options added.
12296         * config.gcc: New architecture switch: z9-ec.
12297         * config/s390/s390.h (processor_flags): PF_DFP added.
12298         (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
12299         (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
12300         when the bit is NOT set so remove it from the defaults.
12301
12302 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
12303
12304         * genemit.c (main): Print include statement for dfp.h.
12305         * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
12306         is not available.
12307
12308 2007-03-19  Hans-Peter Nilsson  <hp@axis.com>
12309
12310         * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
12311
12312 2007-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
12313
12314         PR target/31022
12315         * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
12316         instead of PATTERN.
12317
12318 2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12319
12320         * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
12321         attr_length_call, output_call, output_indirect_call): Cleanup
12322         formatting of targetm calls.
12323
12324 2007-03-19  Hans-Peter Nilsson  <hp@axis.com>
12325
12326         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
12327
12328 2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12329
12330         * pa.md: Add fpstore_load and store_fpload instruction types.  Provide
12331         reservation, bypass and anti-bypass descriptions for these
12332         instructions.  Update move patterns.
12333         * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
12334         TYPE_FPSTORE.
12335
12336 2007-03-18  Dorit Nuzman  <dorit@il.ibm.com>
12337
12338         * tree-vect-transform.c (get_initial_def_for_induction): Replace
12339         GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
12340         (get_initial_def_for_reduction): Likewise.
12341
12342 2007-03-16  Daniel Berlin  <dberlin@dberlin.org>
12343
12344         Fix PR tree-optimization/29922
12345         * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
12346         (get_representative): Removed.
12347         (value_dies_in_block_x): Update for rvuse removal.
12348         (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
12349         (compute_antic_aux): Handle when PHI nodes appear in
12350         non-single-successors.
12351         (dump_bitmap_of_names): Removed.
12352         (compute_antic_safe): Renamed and removed rvuse calculation.
12353         Calculate only antic safe.
12354         (insert_into_preds_of_block): Remove assert.
12355         (execute_pre): Update for renamed functions.
12356         (defer_or_phi_translate_block): New function.
12357
12358 2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
12359
12360         * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
12361         config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
12362         typos.
12363         * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
12364         Follow spelling conventions.
12365
12366         * tree-data-ref.h: Remove the prototype for analyze_array.
12367
12368 2007-03-17  Dorit Nuzman  <dorit@il.ibm.com>
12369
12370         PR tree-optimization/31041
12371         * tree-vect-transform.c (get_initial_def_for_induction): Call
12372         force_gimple_operand.
12373
12374 2007-03-17  Olga Golovanevsky  <olga@il.ibm.com>
12375
12376         * ipa-type-escape.c (look_for_casts) : Revert code to use
12377         handled_component_p due to ada test a-numaux.adb.
12378
12379 2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
12380
12381         * final.c (final_scan_insn): Alter the condition of a
12382         conditional trap if we have nonstandard CC.
12383
12384 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
12385
12386         * configure.ac: Remove excess quoting from asm line 0 test.
12387         * configure: Rebuilt.
12388
12389 2007-03-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12390
12391         * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
12392         * c-common.c (convert_and_check): Move warning logic to...
12393         (warnings_for_convert_and_check): ...here. Define.
12394         * c-common.h (warnings_for_convert_and_check): Declare.
12395
12396 2007-03-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12397
12398         * pa.c (attr_length_call): Partially revert change of 2007-03-09.
12399         (output_call): Likewise.
12400
12401 2007-03-16  Richard Sandiford  <richard@codesourcery.com>
12402
12403         * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
12404
12405 2007-03-16  Richard Sandiford  <richard@codesourcery.com>
12406
12407         * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
12408
12409 2007-03-16  Uros Bizjak  <ubizjak@gmail.com>
12410
12411         * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
12412         opteron, athlon-64 and athlon-fx processor_alias_table entries.
12413
12414 2007-03-16  Sebastian Pop  <sebastian.pop@inria.fr>
12415
12416         PR tree-optimization/31183
12417         * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
12418         Use double_int instead of unsigned int for representing access_strides.
12419         * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
12420
12421 2007-03-16  Richard Guenther  <rguenther@suse.de>
12422
12423         PR tree-optimization/31146
12424         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
12425         to allow recursion of forward_propagate_addr_expr.
12426         (forward_propagate_addr_into_variable_array_index): Likewise.
12427         (forward_propagate_addr_expr): Likewise.
12428         (tree_ssa_forward_propagate_single_use_vars): Likewise.
12429         (forward_propagate_addr_expr_1): Recurse on simple copies
12430         instead of propagating into them.  Do so for useless conversions
12431         as well.
12432         (forward_propagate_addr_expr): Clean up unused statements after
12433         recursion.
12434
12435 2007-03-16  Richard Guenther  <rguenther@suse.de>
12436
12437         * builtins.c (expand_builtin_cexpi): Use the right argument
12438         for the expansion via cexp.
12439
12440 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
12441
12442         * configure.ac: Don't require ELF binutils to tolerate # 0 "".
12443         * configure: Rebuilt.
12444
12445 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
12446
12447         PR debug/29906
12448         * dwarf2out.c (force_type_die): Adjust comment.
12449         (dwarf2out_imported_module_or_decl): Handle base AT_import types.
12450
12451 2007-03-15  DJ Delorie  <dj@redhat.com>
12452
12453         * config/frv/predicates.md (minmax_operator): Don't check operands
12454         here.
12455
12456 2007-03-15  Zdenek Dvorak  <dvorakz@suse.cz>
12457
12458         * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
12459         Update constant estimates of number of iterations.
12460         (record_nonwrapping_iv): Add "upper" argument.  "data_size_bounds_p"
12461         argument renamed to "realistic".
12462         (compute_estimated_nb_iterations): Removed.
12463         (record_niter_bound): New function.
12464         (idx_infer_loop_bounds): For possible but unlikely tail arrays,
12465         call record_nonwrapping_iv with upper = false.
12466         (infer_loop_bounds_from_signedness): Pass upper argument to
12467         record_nonwrapping_iv.
12468         (estimate_numbers_of_iterations_loop): Do not call
12469         compute_estimated_nb_iterations.  Record estimate based on profile
12470         information.  Initialize the constant estimates of number of
12471         iterations.
12472         * tree-data-ref.c (estimated_loop_iterations): Return the recorded
12473         estimates.
12474         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
12475         number of iterations is too small.
12476         * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
12477         (EST_NOT_AVAILABLE): Removed.
12478         (struct loop): Replace estimated_nb_iterations by any_upper_bound,
12479         nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
12480         fields.
12481
12482 2007-03-15  Zdenek Dvorak  <dvorakz@suse.cz>
12483
12484         * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
12485         Handle NE_EXPR guards.
12486
12487 2007-03-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12488
12489         PR c++/24924
12490         * c-opts.c (c_common_post_options): Handle C++ post-processing here.
12491         Set also -pedantic-errors by default for the  preprocessor unless
12492         -fpermissive is given.
12493
12494 2007-03-15  Richard Guenther  <rguenther@suse.de>
12495
12496         PR middle-end/29719
12497         PR middle-end/31161
12498         * builtins.c (expand_builtin_cexpi): As a fallback if we
12499         don't have builtins for sincos or cexp create a function
12500         declaration for cexp and expand to a call to that.
12501         (expand_builtin_int_roundingfn): Always fall
12502         back to floor/ceil and its variants even if they may be
12503         not available.
12504
12505 2007-03-15  Steven Bosscher  <steven@gcc.gnu.org>
12506
12507         PR middle-end/31159
12508         * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
12509         jump tables, move the call to delete_dead_jumptables from here...
12510         (cfg_layout_finalize): ...to here.  But rebuild jump labels first.
12511         * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
12512         don't allow merging of blocks that try_redirect_by_replacing_jump
12513         also does not handle when not optimizing.
12514
12515 2007-03-15  Uros Bizjak  <ubizjak@gmail.com>
12516             Francois-Xavier Coudert  <coudert@clipper.ens.fr>
12517
12518         * config/i386/i386.md (x86_sahf_1): Correctly handle
12519         HAVE_AS_IX86_SAHF.
12520
12521 2007-03-15  Uros Bizjak  <ubizjak@gmail.com>
12522
12523         PR target/31167
12524         * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
12525         x86_64_general_operand as operand[2] predicate.  Remove "iF"
12526         from operand constraints and use "e" constraint instead.
12527         (*subti3_1, *subti3_1 splitter): Ditto.
12528         (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
12529         operand[1] predicate.
12530
12531 2007-03-14  Sebastian Pop  <sebastian.pop@inria.fr>
12532
12533         * tree-loop-linear.c (gather_interchange_stats): For multidimensional
12534         arrays, multiply the access strides by the size of the sub-array.
12535         * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
12536
12537 2007-03-14  Uros Bizjak  <ubizjak@gmail.com>
12538
12539         * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
12540         the configured assembler supports the sahf mnemonic.
12541         * configure: Regenerate.
12542         * config.in: Regenerate.
12543
12544         * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
12545         emit "sahf" or ".byte\t0x9e" as asm template.
12546
12547 2007-03-14  Michael Meissner  <michael.meissner@amd.com>
12548
12549         PR 31018
12550         * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
12551         option to replace hard coded TARGET_xxx in md file.
12552         (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
12553         (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
12554         (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
12555         (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
12556         (X86_TUNE_NOT_UNPAIRABLE): Ditto.
12557         (X86_TUNE_NOT_VECTORMODE): Ditto.
12558         (TUNE_SHORTEN_X87_SSE): Use new tuning option.
12559         (TUNE_AVOID_VECTOR_DECODE): Ditto.
12560         (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
12561         (TUNE_SLOW_IMUL_IMM8): Ditto.
12562         (TUNE_MOVE_M1_VIA_OR): Ditto.
12563         (TUNE_NOT_UNPAIRABLE): Ditto.
12564         (TUNE_NOT_VECTORMODE): Ditto.
12565
12566         * config/i386/i386.c (ix86_tune_features): Fill in new tuning
12567         options.
12568
12569         * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
12570         tuning options instead of hard coded TARGET_xxx.
12571         (fix ssemode peephole2's): Ditto.
12572         (imul peephole2's): Ditto.
12573         (movsi_or): Ditto.
12574         (movdi_or_rex64): Ditto.
12575         (move peephole2): Ditto.
12576         (not peephole2's): Ditto.
12577
12578 2007-03-14  Dirk Mueller  <dmueller@suse.de>
12579
12580         * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
12581         * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
12582         * c-parser.c (c_parser_if_body): Always add an empty statement in case
12583         of empty body.
12584         * c-parser.c (c_parser_do_statement): Warn about empty body in
12585         do/while statement.
12586         * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
12587         * doc/invoke.texi (-Wempty-body): Update documentation.
12588
12589 2007-03-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12590
12591         PR c/21438
12592         * c-common.h (warn_for_div_by_zero): Declare.
12593         * c-common.c (warn_for_div_by_zero): Define.
12594         * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
12595         warning.
12596
12597 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
12598
12599         * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
12600         to PREFIX and STANDARD_PREFIX.
12601
12602 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
12603             Phil Edwards  <phil@codesourcery.com>
12604
12605         * gthr-vxworks.h: Add an extern "C" wrapper for C++.
12606         (__gthread_once_t): Remove busy field for RTPs.
12607         (__GTHREAD_ONCE_INIT): Update accordingly.
12608
12609 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
12610
12611         * doc/invoke.texi: Document VxWorks options.
12612
12613 2007-03-14  Uros Bizjak  <ubizjak@gmail.com>
12614
12615         * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
12616
12617 2007-03-13  Seongbae Park <seongbae.park@gmail.com>
12618
12619         PR tree-optimization/30590
12620         * tree-nrv.c (tree_nrv): Check for the partial update of the
12621         return value.
12622
12623 2007-03-13  Alexandre Oliva  <aoliva@redhat.com>
12624
12625         * flags.h (flag_random_seed): Remove declaration, in favor of...
12626         * toplev.h (get_random_seed, set_random_seed): ... these.
12627         * tree.c (get_file_function_name): Use the former.
12628         * opts.c (common_handle_option): Use the latter.
12629         * toplev.c
12630
12631 2007-03-13  Steven Bosscher  <steven@gcc.gnu.org>
12632
12633         PR middle-end/31127
12634         * cse.c (cse_find_path): Do not bail out if a basic block that
12635         we already visited now becomes part of a path that starts at a
12636         different basic block.  Just disallow this, to make sure we
12637         visit each basic block at most once.
12638
12639 2007-03-13  Jan Hubicka  <jh@suse.cz>
12640
12641         * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold
12642         attributes, when profile esitmate is present, calls with very low
12643         frequency are cold.
12644
12645 2007-03-13  Zdenek Dvorak  <dvorakz@suse.cz>
12646
12647         PR tree-optimization/30730
12648         PR tree-optimization/26900
12649         * tree-ssa-loop-niter.c: Include gmp.h.
12650         (bounds): New type.
12651         (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
12652         split_to_var_and_offset, determine_value_range,
12653         bound_difference_of_offsetted_base, refine_bounds_using_guard,
12654         bound_difference, bounds_add, bounds_negate,
12655         number_of_iterations_ne_max, dump_affine_iv): New functions.
12656         (number_of_iterations_ne, number_of_iterations_lt_to_ne,
12657         assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
12658         difference of initial and final value of control iv to validate
12659         results.
12660         (number_of_iterations_cond): Add loop parameter.  Determine bounds
12661         on the difference of the extremes of the control iv.  Add dumps.
12662         (expand_simple_operations): Handle phi nodes.
12663         (simplify_using_initial_conditions): Do not record used conditions.
12664         (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
12665         Do not set additional_info.
12666         (implies_nonnegative_p, implies_ge_p): Removed.
12667         (derive_constant_upper_bound): Do not use parameter `additional'.
12668         (record_estimate): Parameter `additional' removed.  Parameter
12669         `i_bound' added.  Do not call derive_constant_upper_bound.
12670         (record_nonwrapping_iv): Use derive_constant_upper_bound to
12671         bound the number of iterations estimate.
12672         (estimate_numbers_of_iterations_loop): Pass the estimate from
12673         the number of iterations analysis to record_estimate.
12674         * tree.h (multiple_of_p): Declare.
12675         * tree-scalar-evolution.c (expression_expensive_p): Removed.
12676         (scev_const_prop): Do not check expression_expensive_p.
12677         * fold-const.c (multiple_of_p): Exported.
12678         * double-int.c (double_int_mask): Exported.
12679         * double-int.h (double_int_mask): Declare.
12680         * tree-flow.h (struct tree_niter_desc): Removed additional_info
12681         field.  Added max field.
12682
12683 2007-03-13  David Taylor  <taylor@candd.org>
12684
12685         PR driver/12448:
12686         * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
12687         default -MQ.
12688
12689 2007-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12690
12691         PR target/31123
12692         * pa.md (vdepi_ior): Don't allow zero length deposit.  Likewise for
12693         two unamed patterns.
12694
12695 2007-03-13  Uros Bizjak  <ubizjak@gmail.com>
12696
12697         * config/i386/i386.opt (mcx16, msahf): New options.
12698         * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
12699         (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
12700
12701         * config/i386/driver-i386.c (bit_LAHF_LM): New define.
12702         (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
12703         Output -mcx16 and -msahf options when corresponding bit is set.
12704
12705         * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
12706         and -msahf options.
12707
12708 2007-03-13  Alexandre Oliva  <aoliva@redhat.com>
12709
12710         * configure.ac: Test for assembler tolerance to # 0 "".
12711         * configure, config.in: Rebuilt.
12712         * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
12713
12714 2007-03-13  Geoffrey Keating  <geoffk@apple.com>
12715
12716         * doc/invoke.texi (Spec Files): Update for '%{,' spec.
12717
12718         * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
12719         (handle_syscall): Handle direct system calls.
12720         * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
12721
12722 2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>
12723
12724         * doc/invoke.texi: Fix cpp.info cross-reference.
12725         * doc/passes.texi: Fix gcc.info cross-reference.
12726
12727 2007-03-12  Zdenek Dvorak  <dvorakz@suse.cz>
12728
12729         PR tree-optimization/30835
12730         * lambda-code.c (can_convert_to_perfect_nest): Check whether
12731         bb_for_stmt is not NULL before accessing it.
12732
12733 2007-03-12  Joseph Myers  <joseph@codesourcery.com>
12734
12735         * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
12736         some multilibs.
12737
12738 2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>
12739
12740         PR 30635
12741         * doc/install.texi: Document --enable-stage1-languages
12742
12743 2007-03-12  Steven Bosscher  <steven@gcc.gnu.org>
12744
12745         * tree-pass.h (pass_into_cfg_layout_mode,
12746         pass_outof_cfg_layout_mode): Declare.
12747         * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
12748         pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
12749         * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
12750         (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
12751
12752 2007-03-12  Seongbae Park <seongbae.park@gmail.com>
12753
12754         * c-decl.c (warn_variable_length_array): New function.
12755         Refactored from grokdeclarator to handle warn_vla
12756         and handle unnamed array case.
12757         (grokdeclarator): Refactored VLA warning case.
12758         * c.opt (Wvla): New flag.
12759         * doc/invoke.texi (Wvla): New warning.
12760
12761 2007-03-12  Richard Henderson  <rth@redhat.com>
12762
12763         * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
12764         (TARGET_SECTION_TYPE_FLAGS): New.
12765
12766 2007-03-12  Richard Henderson  <rth@redhat.com>
12767
12768         * config/darwin.c (machopic_reloc_rw_mask): New.
12769         * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
12770         * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
12771
12772 2007-03-12  Mark Mitchell  <mark@codesourcery.com>
12773
12774         * cppdefault.c (cpp_EXEC_PREFIX): New variable.
12775         * cppdefault.h (cpp_PREFIX): Document.
12776         (cpp_PREFIX_len): Likewise.
12777         (cpp_EXEC_PREFIX): New variable.
12778         * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
12779         * c-incpath.c (add_standard_paths): Correct logic for relocating
12780         paths within prefix.
12781
12782 2007-03-12  Uros Bizjak  <ubizjak@gmail.com>
12783
12784         * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
12785         fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
12786         mode macro.
12787         (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
12788         fix_truncdfdi_sse using SSEMODEF mode macro.
12789         (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
12790         fix_truncdfsi_sse using SSEMODEF mode macro.
12791         (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
12792         (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
12793
12794 2007-03-12  Richard Sandiford  <richard@codesourcery.com>
12795
12796         * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
12797         elfos.h to tm_file.
12798
12799 2007-03-12  Olga Golovanevsky  <olga@il.ibm.com>
12800
12801         * tree.h : Add multiple_of_p declaration.
12802         * fold-const.c (multiple_of_p): Make multiple_of_p public.
12803         * ipa-type-escape.c (results_of_malloc): Redundant.
12804         (visited_stmts): New. Visited stmt for walk_use_def_chains.
12805         (cast_type): Extended with new members.
12806         (check_cast): Returns cast_type.
12807         (cast): New structure for data of walk_use_def_chains.
12808         (is_malloc_result, is_cast_from_non_pointer_1,
12809         is_cast_from_non_pointer,
12810         is_array_access_through_pointer_and_index): New functions.
12811         (look_for_casts): Returns cast types.
12812         (check_call): Returns void.
12813         (okay_pointer_operation): Use support of pointer plus index,
12814         pointer plus constant and allow all multiplications.
12815
12816 2007-03-11  Richard Guenther  <rguenther@suse.de>
12817
12818         PR tree-optimization/31115
12819         * tree-vrp.c (extract_range_from_binary_expr): Make sure
12820         the shift count is positive and non-anti-range for RSHIFT_EXPR.
12821         A shift count of zero is not special as with *_DIV_EXPR.
12822         (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
12823         direction.
12824
12825 2007-03-11  Ian Lance Taylor  <iant@google.com>
12826
12827         * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
12828         the *_DIV_EXPR codes correctly with overflow infinities.
12829
12830 2007-03-11  Ira Rosen  <irar@il.ibm.com>
12831
12832         * tree-data-ref.c (analyze_offset): Add a return value (bool) to
12833         indicate success/failure of the analysis. Add negation to subtrahend
12834         in case of subtraction. Fail if both operands contain constants.
12835         (create_data_ref): Fail if analyze_offset fails.
12836
12837 2007-03-11  Uros Bizjak  <ubizjak@gmail.com>
12838
12839         * config/i386/i386.md (frndintxf2): Rename to ...
12840         (rintxf2): ... this. Remove expander having same name.
12841         (rintsf2, rintdf2): Implement using SSEMODEF macro.
12842         (roundsf2, rounddf2): Ditto.
12843         (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
12844         (lround<mode>di2, lround<mode>si2): Ditto.
12845
12846 2007-03-11  Steven Bosscher  <steven@gcc.gnu.org>
12847
12848         * lower-subreg.c: Include except.h.
12849         (decompose_multiword_subregs): Verify that the only control flow
12850         insns we can split are loads to multi-words pseudos.
12851         Handle breaking such blocks after splitting, instead of calling
12852         find_many_sub_basic_blocks.
12853
12854         * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
12855         on the new basic block.  Add a lengthy comment explaining why we
12856         thought this was necessary.
12857         * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
12858
12859 2007-03-10  Mark Mitchell  <mark@codesourcery.com>
12860
12861         PR c++/30924
12862         * tree.c (walk_type_fields): Recurse into the element type of
12863         ARRAY_TYPEs if there is a pointer set.
12864
12865 2007-03-10  Dirk Mueller  <dmueller@suse.de>
12866
12867         * c-common.c (warn_logical_operator): Fix condition.
12868
12869 2007-03-10  Tobias Schl�ter  <tobi@gcc.gnu.org>
12870
12871         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
12872         quotation mark.
12873         * config/darwin.c (machopic_select_section): Remove superfluous
12874         argument in call to categorize_decl_for_section.  Remove unused
12875         variable shlib.
12876
12877 2007-03-10  Joseph Myers  <joseph@codesourcery.com>
12878
12879         * configure.ac (glibc_header_dir): Set using with_build_sysroot if
12880         defined.
12881         * configure: Regenerate.
12882
12883 2007-03-10  Uros Bizjak  <ubizjak@gmail.com>
12884
12885         PR target/31101
12886         * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
12887         (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
12888         (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
12889         Add LABEL_NUSES to emitted label.
12890         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
12891         branch probability value to emitted jump insn.
12892         * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
12893         Do not check life information and do not re-arrange input operands
12894         for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.
12895
12896 2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
12897
12898         * config/sh/sh.c (sh_insn_length_adjustment): Adjust for
12899         the change of decode_asm_operands.
12900
12901 2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
12902
12903         * mode-switching.c (create_pre_exit): Skip blockage insn.
12904
12905 2007-03-09  Diego Novillo  <dnovillo@redhat.com>
12906
12907         * tree-pass.h (TODO_update_smt_usage): Remove.
12908         Update all users.
12909         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
12910         argument SOME.
12911         Update all users.
12912
12913 2007-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12914
12915         * pa.c (attr_length_call): Revise condition for long
12916         pc-relative branch.
12917         (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long
12918         local calls on the SOM target.  Don't use "LONG_PIC_PCREL" call
12919         sequence on SOM target.
12920
12921 2007-03-09  Geoffrey Keating  <geoffk@apple.com>
12922
12923         * gcc.c: Document %{, in big comment at top.
12924         (input_suffix_matches): Remove special handling for .s and
12925         .S.
12926         (input_spec_matches): New.
12927         (handle_braces): Handle %{,.
12928         (validate_switches): ',' indicates a value which is not a switch.
12929         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
12930         to detect assembler input.
12931         * config/i386/sol2.h (CPP_SPEC): Likewise.
12932         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
12933         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12934         * config/rs6000/lynx.h (ASM_SPEC): Likewise.
12935         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
12936         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
12937         -m64 causes deployment target to default to 10.5.
12938         * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
12939
12940 2007-03-09  Richard Henderson  <rth@redhat.com>
12941
12942         PR target/26090
12943         * target.h (targetm.asm.out.reloc_rw_mask): New.
12944         * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
12945         (TARGET_ASM_OUT): Use it.
12946         * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
12947         * varasm.c (categorize_decl_for_section): Remove shlib argument;
12948         use the new reloc_rw_mask target hook instead.
12949         (default_section_type_flags_1): Merge into...
12950         (default_section_type_flags): ... here.
12951         (decl_readonly_section_1): Merge into...
12952         (decl_readonly_section): ... here.
12953         (default_elf_select_section_1): Merge into...
12954         (default_elf_select_section): ... here.
12955         (default_unique_section_1): Merge into...
12956         (default_unique_section): ... here.
12957         (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
12958         (default_select_rtx_section): Use it.
12959         (default_elf_select_rtx_section): Likewise.
12960         * output.h: Update to match.
12961         * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
12962         * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
12963         (TARGET_ASM_RELOC_RW_MASK): New.
12964         * config/i386/i386.c (x86_64_elf_select_section): Adjust call
12965         to categorize_decl_for_section.
12966         (x86_64_elf_unique_section): Likewise.
12967         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
12968         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
12969         (TARGET_ASM_RELOC_RW_MASK): New.
12970         * config/ia64/ia64.c (ia64_rwreloc_select_section,
12971         ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
12972         (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
12973         (TARGET_RWRELOC): Remove.
12974         (ia64_section_type_flags): Adjust call to default_section_type_flags.
12975         * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
12976         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
12977         (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
12978         (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
12979         (rs6000_xcoff_select_section): Use decl_readonly_section.
12980         (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
12981         * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
12982         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
12983         (TARGET_SECTION_TYPE_FLAGS): Remove.
12984         * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
12985
12986 2007-03-09  Roger Sayle  <roger@eyesopen.com>
12987
12988         * fold-const.c (fold_comparison): Remove compile-time evaluation of
12989         complex constant equality/inequality comparisons for here.
12990         (fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
12991         known at compile-time or can be simplified to a scalar comparison.
12992         (fold_relational_const): Move compile-time evaluation of complex
12993         constant equality/inequality comparisons to here.
12994
12995 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
12996
12997         PR rtl-optimization/30643
12998         * cse.c (cse_insn): Recompute dest_hash after insert_regs for
12999         dest_addr_elt.
13000         (fold_rtx): Recurse, like before 2006-11-03.
13001
13002 2007-03-09  DJ Delorie  <dj@redhat.com>
13003
13004         * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to
13005         m32c-pragma.o.
13006
13007 2007-03-09  Aldy Hernandez  <aldyh@redhat.com>
13008
13009         PR tree-optimization/30375
13010         * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
13011         LHS of statements is not the same.
13012         * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
13013
13014 2007-03-09  Chao-ying Fu  <fu@mips.com>
13015
13016         * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
13017         REV 2.
13018         * doc/invoke.texi (-mdspr2): Document new option.
13019         * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
13020         New unspec for DSP REV 2.
13021         (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
13022         these instructions are extended in DSP REV 2.
13023         (mips-dspr2.md): Include.
13024         * config/mips/mips.opt (mdspr2): New option.
13025         * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
13026         MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
13027         MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
13028         (override_options): Check TARGET_DSPR2 to enable MASK_DSP.
13029         (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
13030         (dsp_bdesc): Add DSP REV 2 builtins.  Remove 32-bit only DSP builtins.
13031         (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
13032         and 2 builtins.
13033         (bdesc_map): Add one field of unsupported_target_flags.
13034         (bdesc_arrays):  Update entries to have extra fields.  Add
13035         dsp_32only_bdesc.
13036         (mips_init_builtins): Initialize new function types.
13037         Check unsupported_target_fileds to filter out builtins.
13038         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
13039         TARGET_DSPR2.
13040         (ASM_SPEC): Pass mdspr2 to the assembler.
13041         * config/mips/mips-dspr2.md: New file.
13042
13043 2007-03-09  Sa Liu  <saliu@de.ibm.com>
13044
13045         * config/rs6000/altivec.md: Fix vcond patterns using if_then_else.
13046
13047 2007-03-09  Ian Lance Taylor  <iant@google.com>
13048
13049         * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
13050         argument) like -Wstrict-overflow=2.
13051         * doc/invoke.texi (Warning Options): Update documentation.
13052
13053 2007-03-09  Dirk Mueller  <dmueller@suse.de>
13054
13055         PR c++/17946
13056         * doc/invoke.texi (-Wlogical-op): Document.
13057         * common.opt (-Wlogical-op): New.
13058         * c-common.h (warn_logical_operator): Declare.
13059         * c-common.c (warn_logical_operator): Define.
13060         * c-typeck.c (parser_build_binary_op): Call
13061         warn_logical_operator.
13062
13063 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
13064
13065         * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
13066         * final.c (final_scan_insn): Test for non-"" file name.
13067
13068 2007-03-09  Sebastian Pop  <sebastian.pop@inria.fr>
13069
13070         * doc/loop.texi: Document the Omega linear constraints solver.
13071         * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
13072         omega-max-geqs, omega-max-eqs, omega-max-wild-cards,
13073         omega-hash-table-size, omega-max-keys, and
13074         omega-eliminate-redundant-constraints.
13075         * tree-pass.h (pass_check_data_deps): Declared.
13076         * omega.c: New.
13077         * omega.h: New.
13078         * timevar.def (TV_CHECK_DATA_DEPS): Declared.
13079         * tree-ssa-loop.c (check_data_deps, gate_check_data_deps,
13080         pass_check_data_deps): New.
13081         * tree-data-ref.c (init_data_ref): Remove declaration.
13082         (dump_data_dependence_relation): Dump DDR_INNER_LOOP.
13083         (analyze_array): Renamed init_array_ref, move up initializations.
13084         (init_data_ref): Renamed init_pointer_ref.  Moved before its call.
13085         Removed arguments that are set to NULL.
13086         (analyze_indirect_ref): Correct indentation, correct call to
13087         init_pointer_ref.
13088         (object_analysis): Call init_array_ref instead of analyze_array.
13089         (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
13090         (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
13091         of DR_ACCESS_FNS_ADDR.
13092         (init_omega_eq_with_af, omega_extract_distance_vectors,
13093         omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
13094         ddr_consistent_p): New.
13095         (compute_affine_dependence): Check consistency of ddrs when
13096         flag_check_data_deps is passed.
13097         (analyze_all_data_dependences): Uncomment.
13098         (tree_check_data_deps): New.
13099         * tree-data-ref.h: Include omega.h.
13100         (DR_ACCESS_FNS_ADDR): Removed.
13101         (data_dependence_relation): Add inner_loop.
13102         (DDR_INNER_LOOP): New.
13103         * common.opt (fcheck-data-deps): New.
13104         * tree-flow.h (tree_check_data_deps): Declare.
13105         * Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
13106         (OBJS-common): Depend on omega.o.
13107         (omega.o): Define.
13108         * passes.c (pass_check_data_deps): Scheduled.
13109         * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
13110         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
13111         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
13112         PARAM_VECT_MAX_VERSION_CHECKS,
13113         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
13114
13115 2007-03-09  Richard Guenther  <rguenther@suse.de>
13116
13117         PR tree-optimization/30904
13118         PR middle-end/31058
13119         * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
13120         the same way as *_DIV_EXPR.
13121
13122 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
13123
13124         * recog.c (decode_asm_operands): No mixed declarations and code.
13125
13126 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
13127
13128         * rtl.def (ASM_INPUT): Add location.
13129         * rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
13130         (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
13131         (decode_asm_operands): Add loc operand.
13132         (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
13133         * stmt.c (expand_asm): Rename to...
13134         (expand_asm_loc): ... this.  Add locus argument.  Pass it on to
13135         gen_rtx_ASM_INPUT_loc.
13136         (expand_asm_expr): Adjust.
13137         * recog.c (decode_asm_operands): Add loc operand.
13138         (check_asm_operands, extract_insn): Adjust.
13139         * reload1.c (maybe_fix_stack_asms): Likewise.
13140         * final.c (asm_insn_count): Likewise.
13141         (final_scan_insn): Output # line before and after asm.
13142
13143 2007-03-09  Daniel Berlin  <dberlin@dberlin.org>
13144
13145         * tree-ssa-structalias.c (variable_info): Remove
13146         finished_solution.
13147         (new_var_info): Ditto.
13148         (shared_bitmap_info_t): New structure.
13149         (shared_bitmap_table): New variable.
13150         (shared_bitmap_hash): New function.
13151         (shared_bitmap_eq): Ditto
13152         (shared_bitmap_lookup): Ditto.
13153         (shared_bitmap_add): Ditto.
13154         (merge_smts_into): Change to take bitmap directly.
13155         (find_what_p_points_to): Rewrite to use shared bitmap hashtable.
13156         (init_alias_vars): Init shared bitmap hashtable.
13157         (delete_points_to_sets): Delete shared bitmap hashtable.
13158         * tree-ssa-operands.c (add_virtual_operand): Partially revert the
13159         is_aliased removal as a change that was still necessary was
13160         deleted.
13161
13162 2007-03-09  Uros Bizjak  <ubizjak@gmail.com>
13163
13164         * config/i386/i386.h (override_options): Conditionally disable
13165         x86_sahf for 64bit targets only.
13166
13167 2007-03-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13168
13169         PR C/31072
13170         * c-decl.c (merge_decls): Don't call make_var_volatile.
13171         * varasm.c (make_var_volatile): Remove.
13172         * output.h (make_var_volatile): Remove.
13173
13174 2007-03-08  Zdenek Dvorak  <dvorakz@suse.cz>
13175
13176         PR tree-optimization/31085
13177         * tree-ssa-address.c (create_mem_ref): Fix test of type of base.
13178
13179 2007-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13180
13181         * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
13182         llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
13183         ATTR_CONST_NOTHROW_LIST.
13184
13185         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
13186         FIX_TRUNC_EXPR.
13187
13188 2007-03-08  Diego Novillo  <dnovillo@redhat.com>
13189
13190         * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF.
13191
13192 2007-03-08  Geoffrey Keating  <geoffk@apple.com>
13193
13194         PR 31013
13195         * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
13196         is declared.
13197         * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
13198         passed, use shared libgcc.
13199
13200 2007-03-08  Roger Sayle  <roger@eyesopen.com>
13201
13202         * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt
13203         instead of calling build2 with a GIMPLE_MODIFY_STMT.
13204         (honor_protect_cleanup_actions, lower_try_finally_switch):
13205         Likewise.
13206         * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt,
13207         ifc_temp_var): Likewise.
13208         * tree-inline.c (setup_one_parameter): Likewise.
13209         * tree-mudflap.c (mf_decl_cache_locals,
13210         mf_build_check_statement_for): Likewise.
13211         * tree-nested.c (init_tmp_var, save_tmp_var,
13212         finalize_nesting_tree_1): Likewise.
13213         * tree-outof-ssa.c (insert_copy_on_edge,
13214         insert_backedge_copies): Likewise.
13215         * tree-profile.c (tree_gen_edge_profiler,
13216         tree_gen_ic_profiler): Likewise.
13217         * tree-scalar-evolution.c (scev_const_prop): Likewise.
13218         * tree-sra.c (sra_build_assignment): Likewise.
13219         * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise.
13220         * tree-ssa-math-opts.c (insert_reciprocals,
13221         execute_cse_sincos_1): Likewise.
13222         * tree-tailcall.c (adjust_accumulator_values,
13223         adjust_return_value): Likewise.
13224         * tree-vect-patterns.c (vect_pattern_recog_1): Likewise.
13225         * tree-vect-transform.c (vect_create_data_ref_ptr,
13226         bump_vector_ptr, vect_init_vector, get_initial_def_for_induction,
13227         vect_create_epilog_for_reduction, vectorizable_reduction,
13228         vectorizable_call, vectorizable_conversion,
13229         vectorizable_assignment, vectorizable_operation,
13230         vectorizable_type_demotion, vect_gen_widened_results_half,
13231         vect_permute_store_chain, vectorizable_store,
13232         vect_setup_realignment, vect_permute_load_chain,
13233         vectorizable_load, vectorizable_condition,
13234         vect_create_cond_for_align_checks): Likewise.
13235         * tree-vrp.c (build_assert_expr_for): Likewise.
13236
13237 2007-03-08  Ian Lance Taylor  <iant@google.com>
13238
13239         * tree-vrp.c: Include "intl.h".
13240         (usable_range_p): New static function.
13241         (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
13242         overflowed values, juts set *strict_overflow_p.
13243         (compare_values): Only return -2 if one of the operands is not a
13244         constant.
13245         (compare_ranges): Call usable_range_p.
13246         (compare_range_with_value): Likewise.
13247         (vrp_evaluate_conditional_warnv): Rename from
13248         vrp_evaluate_conditional.  Make static.  Change all callers.
13249         (vrp_evaluate_conditional): New function.
13250         (simplify_div_or_mod_using_ranges): Issue warning about reliance
13251         on signed overflow.
13252         (simplify_abs_using_ranges): Likewise.
13253         (simplify_stmt_for_jump_threading): Add within_stmt parameter.
13254         * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
13255         within_stmt parameter.
13256         * tree-ssa-propagate.c (fold_predicate_in): Update call to
13257         vrp_evaluate_conditional.
13258         * tree-ssa-threadedge.c
13259         (record_temporary_equivalences_from_stmts_at_dest): Change
13260         simplify parameter to take a second tree parameter.
13261         (simplify_control_stmt_condition): Likewise.
13262         (thread_across_edge): Likewise.
13263         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
13264         (thread_across_edge): Likewise.
13265         * Makefile.in (tree-vrp.o): Depend upon intl.h.
13266
13267 2007-03-08  Uros Bizjak  <ubizjak@gmail.com>
13268
13269         * config/i386/i386.h (TARGET_SAHF): New define.
13270         * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
13271         Also enable for m_K8, m_AMDFAM10 and m_CORE2.
13272         (x86_sahf): New global variable.
13273         (override_options): Add PTA_NO_SAHF to pta_flags enum.  Recode
13274         pta_flags masks using shifts.  Add PTA_NO_SAHF to x86_64 and
13275         nocona processor flags.  Set x86_sahf when PTA_NO_SAHF is not set
13276         in processor flags.  Do not unconditionally disable TARGET_USE_SAHF
13277         for 64-bit.
13278         (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
13279         (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
13280         when expanding fcomi/sahf based tests.
13281         (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
13282         expanding sahf based alternative. Emit sahf based sequence when
13283         optimizing for code size.
13284         * config/i386/i386.md (x86_sahf_1): Do not disable for
13285         TARGET_64BIT, enable for TARGET_SAHF.
13286
13287 2007-03-08  Martin Michlmayr  <tbm@cyrius.com>
13288
13289         * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove
13290         spurious whitespace from error message.
13291
13292 2007-03-08  Volker Reichelt  <reichelt@netcologne.de>
13293
13294         PR c++/30852
13295         * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
13296
13297 2007-03-08  Alexandre Oliva  <aoliva@redhat.com>
13298
13299         * c-decl.c (grokdeclarator): Disable warnings for anonymous
13300         bitfields.
13301         * tree-sra.c (instantiate_element): Propagate disabled warnings
13302         from the element itself to the created variable.
13303
13304 2007-03-07  Richard Henderson  <rth@redhat.com>
13305
13306         PR target/30848
13307         * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
13308         silently fix up the stack in the case of a missing register.
13309
13310 2007-03-07  Paul Brook  <paul@codesourcery.com>
13311
13312         * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds.
13313
13314 2007-03-07  Joseph Myers  <joseph@codesourcery.com>
13315
13316         * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs):
13317         New.
13318         (phase1_vrs): Use them.
13319         (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New.
13320         (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD,
13321         __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare.
13322         (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and
13323         __gnu_Unwind_Restore_WMMXC if required.
13324         (_Unwind_VRS_Pop): Implement iWMMXt support.
13325         * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD,
13326         gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC,
13327         gnu_Unwind_Save_WMMXC): Define.
13328
13329 2007-03-07  Richard Sandiford  <richard@codesourcery.com>
13330
13331         * config/vxworks.h (vxworks_override_options): Declare.
13332         (VXWORKS_OVERRIDE_OPTIONS): Use it.
13333         * config/vxworks.c: Include target.h and toplev.h.
13334         (vxworks_override_options): New function.
13335         * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
13336
13337 2007-03-07  Andreas Krebbel  <krebbel1@de.ibm.com>
13338
13339         * config/s390/s390.c (override_options): Don't emit an error when
13340         -mstack-size is used without providing -mstack-guard.
13341         (s390_emit_prologue): Choose stack_guard value automatically if not
13342         provided via command line.
13343         * doc/invoke.texi: Adjust description of -mstack-guard and
13344         -mstack-size.
13345
13346 2007-03-07  Richard Sandiford  <richard@codesourcery.com>
13347
13348         * config/i386/i386.c (output_set_got): Add a GOT initialization
13349         sequence for VxWorks PIC.
13350         (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
13351         around labels as well as symbols.  Use gotoff_operand instead
13352         of local_symbolic_operand.
13353         (legitimize_pic_address): Use gotoff_operand instead of
13354         local_symbolic_operand.  Use @GOT accesses for labels as
13355         well as symbols.
13356         (ix86_output_addr_diff_elt): Use PC-relative rather than
13357         GP-relative offsets for VxWorks PIC.
13358         (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
13359         no_new_pseudos.  Check whether the returned register is op0.
13360         * config/i386/i386.md (tablejump): Use PC-relative rather than
13361         GP-relative offsets for VxWorks PIC.
13362         * config/i386/predicates.md (gotoff_operand): New predicate.
13363
13364 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13365
13366         * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
13367         before defining.
13368         * config/vxworks-dummy.h: New file.
13369         * config/i386/i386.h: Include it.
13370
13371 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
13372
13373         * dwarf2out.c (is_inlined_entry_point): New
13374         (add_high_low_attributes): Emit DW_AT_entry_pc along with
13375         DW_AT_ranges if the first subblock is the entry point.
13376
13377 2007-03-06  David Daney  <ddaney@avtrex.com>
13378
13379         * doc/install.texi (mips-*-*): Change recommended binutils
13380         version.
13381
13382 2007-03-06  Anatoly Sokolov <aesok@post.ru>
13383
13384         * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
13385         ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
13386         devices.
13387         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13388         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
13389
13390 2007-03-06  Jan Hubicka  <jh@suse.cz>
13391
13392         * errors.h (warning, error, fatal, internal_error): Mark as cold.
13393         * predict.c (maybe_hot_bb): Cold functions are never hot; hot
13394         functions are hot.
13395         (probably_cold_bb_p): Cold functions are cold.
13396         (probably_never_executed_bb_p): Cold functions are cold.
13397         (tree_bb_level_predictions): Predict calls to cold functions as not
13398         taken.
13399         (compute_function_frequency): Check hot/cold attributes.
13400         * function.h (function_frequency): Update comments.
13401         * predict.def (PRED_COLD_FUNCTION): Predict cold function.
13402         * c-common.c (handle_hot_attribute, handle_cold_attribute): New.
13403         (c_common_att): Add cold and hot.
13404
13405         * doc/extend.texi (hot,cold attributes): Document.
13406
13407 2007-03-06  Andrew Haley  <aph@redhat.com>
13408
13409         * function.c (expand_function_end): Move blockage to just after we
13410         emit the label for the naked return from the function.
13411
13412 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13413
13414         * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
13415         before redefining.
13416
13417 2007-03-06  Jan Hubicka  <jh@suse.cz>
13418
13419         * reg-stack.c (reg_to_stack): Large models don't allow NAN to be
13420         loaded for constant large models.  Non-large 64bit PIC can do.
13421         * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
13422         * cmodel.h: Add LARGE PIC.
13423         * i386.md (UNSPEC_PLTOFF): New.
13424         (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other
13425         unspecs as needed.
13426         (*call_1_rex64): Disable for large models.
13427         (*call_1_rex64_large): New.
13428         (*call_value_1_rex64): Disable for large models.
13429         (*call_value_1_rex64_large): New.
13430         (set_rip_rex4): New.
13431         (set_got_offset_rex64): New.
13432         * predicates.md (constant_call_address_operand): For large model
13433         constant calls are not possible.
13434         * i386-protos.h (construct_plt_address): Declare.
13435         * i386.c (override_options): Accept large models.
13436         (ix86_expand_prologue): Expand large PIC GOT pointer load.
13437         (legitimate_constant_p): Add new UNSPECs.
13438         (legitimate_pic_operand_p): Likewise.
13439         (legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
13440         (legitimize_pic_address): Do easy RIP relative way for TLS only for
13441         non-large model.
13442         (output_pic_addr_const): Add PLTOFF.
13443         (ix86_output_addr_diff_elt): Output 64bit tables when needed.
13444         (ix86_expand_move): Legitimize pic address when in PIC mode.
13445         (construct_plt_address): New function.
13446         (ix86_expand_call): Offload the address to register and use GOT
13447         pointer for large model.
13448         * invoke.texi (mcmodel=large): Update documentation.
13449
13450 2007-03-06  Richard Henderson  <rth@redhat.com>
13451
13452         * config/i386/i386.c (x86_use_leave, x86_push_memory,
13453         x86_zero_extend_with_and, x86_movx, x86_double_with_add,
13454         x86_use_bit_test, x86_unroll_strlen, x86_deep_branch,
13455         x86_branch_hints, x86_use_sahf, x86_partial_reg_stall,
13456         x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop,
13457         x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify,
13458         x86_split_long_moves, x86_promote_QImode, x86_fast_prefix,
13459         x86_single_stringop, x86_qimode_math, x86_promote_qi_regs,
13460         x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8,
13461         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
13462         x86_partial_reg_dependency, x86_memory_mismatch_stall,
13463         x86_prologue_using_move, x86_epilogue_using_move, x86_shift1,
13464         x86_sse_partial_reg_dependency, x86_sse_split_regs,
13465         x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
13466         x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec,
13467         x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit,
13468         x86_schedule, x86_use_bt, x86_pad_returns,
13469         x86_use_xchgb): Merge into ...
13470         (ix86_tune_features): ... here.  New array.
13471         (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
13472         x86_bswap): Merge into ...
13473         (ix86_arch_features): ... here.  New array.
13474         (x86_3dnow_a): Remove.
13475         (x86_accumulate_outgoing_args): Make static.
13476         (x86_arch_always_fancy_math_387): Make static.
13477         (ix86_tune_mask, ix86_arch_mask): Move ...
13478         (override_options): ... to local variables here.  Apply the
13479         appropriate mask to each element of ix86_arch_features and
13480         ix86_tune_features.  Adjust TARGET_CMOVE and TARGET_USE_SAHF
13481         as were done in the old macros.
13482         (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS.
13483         * config/i386/i386.h (x86_use_leave, x86_push_memory,
13484         x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch,
13485         x86_branch_hints, x86_unroll_strlen, x86_double_with_add,
13486         x86_partial_reg_stall, x86_movx, x86_use_himode_fiop,
13487         x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb,
13488         x86_read_modify_write, x86_read_modify, x86_split_long_moves,
13489         x86_promote_QImode, x86_single_stringop, x86_fast_prefix,
13490         x86_himode_math, x86_qimode_math, x86_promote_qi_regs,
13491         x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4,
13492         x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8,
13493         x86_partial_reg_dependency, x86_memory_mismatch_stall,
13494         x86_accumulate_outgoing_args, x86_prologue_using_move,
13495         x86_epilogue_using_move, x86_decompose_lea,
13496         x86_arch_always_fancy_math_387, x86_shift1,
13497         x86_sse_partial_reg_dependency, x86_sse_split_regs,
13498         x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
13499         x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves,
13500         x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
13501         x86_use_incdec, x86_pad_returns, x86_bswap,
13502         x86_partial_flag_reg_stall): Remove.
13503         (enum ix86_tune_indices): New.
13504         (ix86_tune_features): New.
13505         (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND,
13506         TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN,
13507         TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS,
13508         TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX,
13509         TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL,
13510         TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0,
13511         TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES,
13512         TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode,
13513         TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH,
13514         TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS,
13515         TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4,
13516         TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES,
13517         TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY,
13518         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS,
13519         TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR,
13520         TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE,
13521         TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP,
13522         TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE,
13523         TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS,
13524         TARGET_EXT_80387_CONSTANTS): Use it.
13525         (enum ix86_arch_indices): New.
13526         (ix86_arch_features): New.
13527         (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD,
13528         TARGET_BSWAP): Use it.
13529         (ix86_tune_mask, ix86_arch_mask): Remove.
13530
13531 2007-03-06  Joseph Myers  <joseph@codesourcery.com>
13532
13533         PR bootstrap/31020
13534         * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
13535         Define using $${sysroot_headers_suffix}.
13536         * configure: Regenerate.
13537         * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
13538         multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
13539         defined.
13540         * doc/invoke.texi (-print-sysroot-headers-suffix): Document.
13541         * gcc.c (print_sysroot_headers_suffix): New.
13542         (option_map): Include --print-sysroot-headers-suffix.
13543         (display_help): Mention -print-sysroot-headers-suffix.
13544         (process_command): Handle -print-sysroot-headers-suffix.
13545         (do_spec_1): Append multilib directory to include-fixed path if
13546         sysroot suffixes in use.
13547         (main): Handle -print-sysroot-headers-suffix.
13548         * Makefile.in (start.encap): Don't depend on xlimits.h
13549         (xlimits.h): Remove.
13550         (stmp-int-hdrs): Don't depend on xlimits.h.  Inline generation of
13551         limits.h for each multilib in fixinc_list.
13552         (fixinc_list, s-fixinc_list): New.
13553         (stmp-fixinc): Depend on fixinc_list.  If not copying headers,
13554         generate them for each multilib in fixinc_list.
13555         (stmp-fixproto): Use include-fixed.  Run fixproto for each
13556         multilib in fixinc_list.
13557         (mostlyclean): Don't remove xlimits.h.
13558         (clean): Remove include-fixed.
13559         (real-install-headers-tar, real-install-headers-cpio,
13560         real-install-headers-cp): Don't copy include, only include-fixed.
13561         (install-mkheaders): Depend on fixinc_list.  Don't depend on
13562         xlimits.h.  Save limits.h files for each multilib in fixinc_list.
13563         Always save mkinstalldirs.  Preserve ${sysroot_headers_suffix} in
13564         SYSTEM_HEADER_DIR setting in mkheaders.conf.
13565
13566 2007-03-06  Jan Hubicka  <jh@suse.cz>
13567
13568         * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load
13569         NANs easilly.
13570
13571 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13572
13573         * configure.ac: Allow tm_file to contain build-directory files.
13574         * configure: Regenerate.
13575         * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
13576         * config/m68k/t-uclinux (sysroot-suffix.h): New target.
13577         * config/m68k/print-sysroot-suffix.sh: New file.
13578
13579 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13580
13581         * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
13582         of pic_offset_table_rtx if reload_completed.
13583         (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
13584         PIC_OFFSET_TABLE_REGNUM.
13585         * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
13586         return true.
13587         (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
13588         (m68k_output_mi_thunk): Rewrite to use RTL.  Honor vcall_offset.
13589
13590 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13591
13592         * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
13593         functions that call eh_return.
13594
13595 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13596
13597         * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
13598         functions that need a constant pool.
13599
13600 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13601
13602         PR target/28181
13603         * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
13604         (m68k_preferred_reload_class): Likewise.
13605         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
13606         (SECONDARY_RELOAD_CLASS): Define.
13607         (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
13608         (LIMIT_RELOAD_CLASS): Delete.
13609         * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
13610         registers from storing bytes.
13611         (m68k_secondary_reload_class): New function.
13612         (m68k_preferred_reload_class): Likewise.
13613
13614 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13615
13616         * config/m68k/m68k.c (m68k_save_reg): Remove special case for
13617         leaf functions.
13618         (m68k_expand_prologue): Likewise.
13619
13620 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13621
13622         * config/m68k/m68k-protos.h (output_sibcall): Declare.
13623         (mips_expand_epilogue): Add a bool parameter.
13624         (m68k_legitimize_sibcall_address): Declare.
13625         * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
13626         (m68k_expand_epilogue): Add a parameter to select between sibling
13627         and normal epilogues.  Only generate a return for the latter.
13628         (m68k_ok_for_sibcall_p): New function.
13629         (m68k_legitimize_sibcall_address, output_sibcall): New functions.
13630         * config/m68k/m68k.md (sibcall, *sibcall): New patterns.
13631         (sibcall_value, *sibcall_value): Likewise.
13632         (*call, *call_value): Require !SIBLING_CALL_P.
13633         (epilogue): Update call to m68k_expand_epilogue.
13634         (sibcall_epilogue): New pattern.
13635         * config/m68k/predicates.md (const_call_operand): Say that this
13636         predicate applies to sibling calls too.
13637         (sibcall_operand): New predicate.
13638
13639 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13640
13641         * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
13642         alternatives as movsi_cf.
13643         (movsf_cf_hard): Add commentary.
13644
13645 2007-03-06  Kazu Hirata  <kazu@codesourcery.com>
13646             Richard Sandiford  <richard@codesourcery.com>
13647
13648         * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
13649         (m68k_movem_pattern_p, m68k_output_movem): Likewise.
13650         (m68k_expand_prologue, m68k_expand_epilogue): Likewise.
13651         * config/m68k/m68k.h (EPILOGUE_USES): Define.  Treat all registers
13652         as being live on exit from an interrupt function.
13653         (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
13654         * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
13655         (m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
13656         (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
13657         (m68k_interrupt_function_p): Globalize.
13658         (m68k_compute_frame_layout): Remove reverse mask code.
13659         (m68k_emit_movem, m68k_set_frame_related): New functions.
13660         (m68k_output_function_prologue): Delete in favor of...
13661         (m68k_expand_prologue): ...this new function.
13662         (m68k_output_function_epilogue): Delete in favor of...
13663         (m68k_expand_epilogue): ...this new function.
13664         (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
13665         functions.
13666         (print_operand): Handle %?.
13667         * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
13668         (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
13669         (prologue, epilogue): New patterns.
13670         (return): Turn into a define_expand.
13671         (*return): New pattern, derived from old "return" pattern.  Use rte
13672         rather than rts for interrupt functions.  Only use rtd if the pop
13673         count is nonzero.
13674         (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
13675         (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
13676         (link, *link, unlink, *unlink, load_got): Likewise.
13677
13678 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13679
13680         PR target/23482
13681         PR target/17114
13682         * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
13683         (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
13684         (m68k_matches_q_p, m68k_matches_u_p): Likewise.
13685         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
13686         and m68k_matches_u_p.
13687         (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
13688         (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
13689         (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
13690         (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
13691         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
13692         (REG_STRICT_P): New macro.
13693         (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
13694         PCREL_GENERAL_OPERAND_OK.
13695         (REG_OK_FOR_BASE_P): Merge definitions.  Use REG_STRICT_P and
13696         m68k_legitimate_base_reg_p.
13697         (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
13698         (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
13699         (PIC_CASE_VECTOR_ADDRESS): Update comment.
13700         * config/m68k/m68k.c (m68k_address): New structure.
13701         (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
13702         (m68k_decompose_index, m68k_legitimate_constant_address_p)
13703         (m68k_jump_table_ref_p, m68k_decompose_address)
13704         (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
13705         (m68k_matches_u_p): New functions.
13706         (print_operand_address): Rewrite to use m68k_decompose_index.
13707
13708 2007-03-05  David Taylor  <dtaylor@emc.com>
13709
13710         * gcc.c: Correct copyright date in --version output.
13711
13712 2007-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13713
13714         * pa.md: In unamed move patterns, disparge copies between general
13715         and floating point registers using '?' modifier.  Don't include 'f'
13716         constraint for register preferences in DImode, SImode, HImode and
13717         QImode patterns.  Likewise for 'r' in DFmode and SFmode patterns.
13718         Remove constraints for copies between general and floating registers
13719         in soft-float DFmode pattern.
13720         (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
13721         floating register.
13722         (movsf): Likewise.
13723
13724 2007-03-05  Mike Stump  <mrs@apple.com>
13725
13726         * c-common.c (targetcm): Add.
13727         * c-opts.c (c_common_handle_option): Handle language specific
13728         target options.
13729         * opts.c (handle_option): Verify language for target options, if
13730         any are given.
13731         * opth-gen.awk: Add CL_LANG_ALL.
13732         * target-def.h (TARGET_HANDLE_C_OPTION): Add.
13733         (TARGETCM_INITIALIZER): Add.
13734         * target.h (struct gcc_targetcm): Add.
13735         (targetcm): Add.
13736         * targhooks.c (default_handle_c_option): Add.
13737         * targhooks.h (default_handle_c_option): Add.
13738         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add.
13739
13740         * config/darwin.opt (iframework): Add.
13741         * config/darwin.h (TARGET_HAS_TARGETCM): Add.
13742         * config/darwin-c.c (handle_c_option): Add.
13743         (TARGET_HANDLE_C_OPTION): Add.
13744         (targetcm): Add.
13745         * doc/invoke.texi (Darwin Options): Add -iframework.
13746
13747 2007-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13748
13749         * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
13750         conversion.
13751
13752 2007-03-05  Ian Lance Taylor  <iant@google.com>
13753
13754         * c.opt (fgnu89-inline): New option.
13755         * c-opts.c (c_common_post_options): Set default value for
13756         flag_gnu89_inline.
13757         * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove.
13758         (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for
13759         inline functions.
13760         (diagnose_mismatched_decls, merge_decls, start_decl): Likewise.
13761         (grokdeclarator, start_function): Likewise.
13762         * c-cppbuiltin.c (c_cpp_builtins): Define either
13763         __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__.
13764         * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
13765         (C Dialect Options): Document -fgnu89-inline.
13766         * doc/extend.texi (Function Attributes): Explain what the
13767         gnu_inline attribute does.
13768         * doc/cpp.texi (Common Predefined Macros): Document
13769         __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
13770
13771 2007-03-05  Ian Lance Taylor  <iant@google.com>
13772
13773         PR tree-optimization/31034
13774         * tree-vrp.c (extract_range_from_assert): Don't try to handle a
13775         half-range if the other side is an overflow infinity.
13776
13777 2007-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
13778
13779         * config.gcc (bfin*-uclinux*): Use t-bfin-uclinux.
13780         (bfin*-linux-uclibc*): New configuration.
13781         * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before
13782         defining.
13783         * config/bfin/linux.h: New file.
13784         * config/bfin/libgcc-bfin.ver: New file.
13785         * config/bfin/t-bfin-uclinux: New file.
13786         * config/bfin/t-bfin-linux: New file.
13787         * config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro.
13788         (TARGET_OS_CPP_BUILTINS): New macro.
13789
13790 2007-03-05  Richard Guenther  <rguenther@suse.de>
13791
13792         * fold-const.c (fold_binary): Remove duplicate folding
13793         of comparison of non-null ADDR_EXPR against null.
13794
13795 2007-03-05  Richard Guenther  <rguenther@suse.de>
13796             Dorit Nuzman  <dorit@il.ibm.com>
13797
13798         PR tree-optimization/26420
13799         * tree-vectorizer.c (vectorize_loops): Bail out early if there
13800         are no loops in the function.  Only print the number of
13801         vectorized loops if it is greater than zero or we are supposed
13802         to print information about unvectorized loops.
13803
13804 2007-03-05  Revital Eres  <eres@il.ibm.com>
13805
13806         * gcc.dg/var-expand1.c: New test.
13807         * loop-unroll.c (analyze_insn_to_expand_var): Add dump info
13808         when an accumulator is expanded.
13809
13810 2007-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13811
13812         PR other/30465
13813         * c-common.c (convert_and_check): Don't give warnings for
13814         conversion if 'expr' already overflowed.
13815
13816 2007-03-04  Roger Sayle  <roger@eyesopen.com>
13817
13818         PR middle-end/30744
13819         * fold-const.c (fold_comparison): Enforce type consistency when
13820         transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C.
13821
13822 2007-03-04  Zdenek Dvorak  <dvorakz@suse.cz>
13823
13824         * tree-ssa-address.c (create_mem_ref): Do not put an expression
13825         containing a cast to the base of TARGET_MEM_REF.
13826
13827 2007-03-04  Martin Michlmayr  <tbm@cyrius.com>
13828
13829         * tree.c (tree_contains_struct_check_failed): Remove spurious
13830         whitespace from error message.
13831
13832 2007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
13833
13834         PR target/30406
13835         * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
13836         instead of precision.
13837
13838 2007-03-04  Roman Zippel <zippel@linux-m68k.org>
13839             Nathan Sidwell  <nathan@codesourcery.com>
13840
13841         * emit-rtl.c (find_auto_inc): New.
13842         (try_split): recreate REG_INC notes,
13843         Use regular for loops rather than whiles.
13844
13845 2007-03-03  Andreas Schwab  <schwab@suse.de>
13846
13847         * configure.ac (HAVE_AS_REL16): Move test back to correct place.
13848         * configure: Regenerate.
13849
13850 2007-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13851
13852         * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on
13853         flag_rounding_math, not flag_unsafe_math_optimizations.
13854
13855         * c-pretty-print.c (pp_c_direct_abstract_declarator): Use
13856         fold_build2.
13857         * config/alpha/alpha.c (alpha_fold_builtin_zapnot,
13858         alpha_fold_vector_minmax): Likewise.
13859         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
13860         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
13861
13862 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
13863
13864         * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
13865         (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
13866         if the lhs has side-effects.
13867         <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
13868
13869 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
13870
13871         * config/i386/i386.h (TUNEMASK): Remove define.
13872         (ARCHMASK): Remove define.
13873         (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK.
13874          Use ix86_arch_mask variable instead of ARCHMASK.
13875         * config/i386/i386.c (override_options): Ditto.
13876         (standard_80387_constant_p): Ditto.
13877
13878 2007-03-02  Ian Lance Taylor  <iant@google.com>
13879
13880         Used signed infinities in VRP.
13881         * tree-vrp.c (uses_overflow_infinity): New static function.
13882         (supports_overflow_infinity): New static function.
13883         (make_overflow_infinity): New static function.
13884         (negative_overflow_infinity): New static function.
13885         (positive_overflow_infinity): New static function.
13886         (is_negative_overflow_infinity): New static function.
13887         (is_positive_overflow_infinity): New static function.
13888         (is_overflow_infinity): New static function.
13889         (overflow_infinity_range_p): New static function.
13890         (compare_values_warnv): New function split out of compare_values.
13891         (compare_value): Call it.
13892         (set_value_range_to_nonnegative): Add overflow_infinity
13893         parameter.  Change caller.
13894         (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
13895         Change callers.
13896         (vrp_expr_computes_nonzero): Likewise.
13897         (compare_ranges, compare_range_with_value): Likewise.
13898         (compare_name_with_value, compare_names): Likewise.
13899         (vrp_evaluate_conditional): Likewise.
13900         (set_value_range): Handle infinity
13901         (vrp_operand_equal_p, operand_less_p): Likewise.
13902         (extract_range_from_assert): Likewise.
13903         (vrp_int_const_binop): Likewise.
13904         (extract_range_from_binary_expr): Likewise.
13905         (extract_range_from_unary_expr): Likewise.
13906         (extract_range_from_comparison): Likewise.
13907         (extract_range_from_expr): Likewise.
13908         (dump_value_range): Likewise.
13909         (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
13910         (test_for_singularity): Likewise.
13911         (vrp_int_const_binop): Remove inline qualifier.
13912         (adjust_range_with_scev): Add comment.
13913         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
13914
13915 2007-03-02  Diego Novillo  <dnovillo@redhat.com>
13916
13917         * tree-ssa-structalias.c (could_have_pointers): Tidy.
13918         (get_constraint_for): Likewise.
13919         (do_structure_copy): Likewise.
13920         (find_func_aliases): Fix references to MODIFY_EXPR.
13921         (intra_create_variable_infos): Tidy.
13922         * tree-ssa-operands.c (add_virtual_operand): Add argument
13923         IS_CALL_SITE.
13924         When adding members of alias sets, if IS_CALL_SITE is true and
13925         the symbol is not call-clobbered, skip it.
13926         Adjust all callers.
13927
13928 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
13929
13930         * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
13931         entry by means of emit_insn_at_entry.
13932
13933 2007-03-02  Richard Henderson  <rth@redhat.com>
13934
13935         * expr.h (promoted_input_arg): Remove decl.
13936         * function.c (promoted_input_arg): Merge into ...
13937         * combine.c (setup_incoming_promotions): ... only caller.
13938         Rearrange to avoid double loop.
13939
13940 2007-03-02  Ben Elliston  <bje@au.ibm.com>
13941             Peter Bergner  <bergner@vnet.ibm.com>
13942             Janis Johnson  <janis187@us.ibm.com>
13943
13944         * config/rs6000/dfp.md: New file.
13945         * config/rs6000/rs6000.md: Include dfp.md.
13946         (add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands.
13947         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode
13948         and TDmode decimal float modes in FP registers.
13949         (num_insns_constant): Likewise.
13950         (rs6000_legitimate_offset_address_p): Likewise.
13951         (rs6000_legitimize_address): Likewise.
13952         (rs6000_legitimize_reload_address): Likewise.
13953         (rs6000_legitimate_address): Likewise.
13954         (rs6000_emit_move): Likewise.
13955         (function_arg_boundary): Likewise.
13956         (function_arg_advance): Likewise.
13957         (rs6000_darwin64_record_arg_recurse): Likewise.
13958         (function_arg): Likewise.
13959         (rs6000_gimplify_va_arg): Likewise.
13960         (rs6000_split_multireg_move): Likewise.
13961         (rs6000_output_function_epilogue): Likewise.
13962         (rs6000_output_function_epilogue): Likewise.
13963         (rs6000_register_move_cost): Likewise.
13964         (rs6000_function_value): Likewise.
13965         (rs6000_libcall_value): Likewise.
13966
13967 2007-03-02  Richard Sandiford  <richard@codesourcery.com>
13968
13969         * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks.
13970
13971 2007-03-02  Richard Sandiford  <richard@codesourcery.com>
13972
13973         * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc.
13974         Use $MULTIDIR to choose between the kernel and RTP headers,
13975         and use $WIND_BASE and $WIND_USR to locate them.
13976
13977 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
13978
13979         * config/i386/i386.c (override_options): Put initialization of
13980         ix86_tune_mask and ix86_arch_mask to the correct place.
13981
13982 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
13983             Michael Meissner  <michael.meissner@amd.com>
13984
13985         PR target/31019
13986         * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask.
13987         (ARCHMASK): Define.
13988         (TARGET_CMOVE): Use ARCHMASK.
13989         (TARGET_CMPXCHG): Ditto.
13990         (TARGET_CMPXCHG8B): Ditto.
13991         (TARGET_XADD): Ditto.
13992         (TARGET_BSWAP): Ditto.
13993         * config/i386/i386.c (ix86_tune_mask): New global variable.
13994         (ix86_arch_mask): Ditto.
13995         (override_options): Initialize ix86_tune_mask and
13996         ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in
13997         target_flags.
13998
13999 2007-03-02  Ben Elliston  <bje@au.ibm.com>
14000
14001         PR 30992
14002         * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.".
14003
14004 2007-03-02  Joseph Myers  <joseph@codesourcery.com>
14005
14006         * target.h (init_dwarf_reg_sizes_extra): New target hook.
14007         * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default.
14008         * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document.
14009         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this
14010         hook.
14011         * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA,
14012         rs6000_init_dwarf_reg_sizes_extra): New.
14013         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support
14014         SPE register high parts.
14015
14016 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
14017
14018         * Makefile.in: Add install-pdf target as
14019         copied from automake v1.10 rules.
14020         * configure.ac: Add install-pdf to target list.
14021         * configure: Regenerate.
14022
14023 2007-03-01  Paul Brook  <paul@codesourcery.com>
14024
14025         * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
14026         modes to LDRD for DImode.
14027         (output_move_double): Fixup out of range ldrd/strd.
14028         (vfp_secondary_reload_class): Rename...
14029         (coproc_secondary_reload_class): ... to this.  Add wb argument.
14030         * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
14031         coproc_secondary_reload_class for CLASS_IWMMXT.
14032         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
14033         * arm-protos.h (coproc_secondary_reload_class): Update prototype.
14034
14035 2007-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
14036
14037         * tree-ssa-loop-prefetch.c (determine_unroll_factor):  Bound the
14038         unroll factor by the estimated number of iterations.
14039         (loop_prefetch_arrays): Do not prefetch in loops that iterate less
14040         than prefetch latency.
14041
14042         * config/i386/driver-i386.c (describe_cache, detect_caches_amd,
14043         decode_caches_intel, detect_caches_intel): New functions.
14044         (host_detect_local_cpu): Use detect_caches_amd and
14045         detect_caches_intel.
14046
14047 2007-03-01  Richard Henderson  <rth@redhat.com>
14048
14049         * expr.c (emit_move_complex_push): Export.
14050         (emit_move_complex_parts): Split out from ...
14051         (emit_move_complex): ... here.
14052         * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare.
14053         * config/i386/i386.md (movcdi): New.
14054
14055 2007-03-01  Uros Bizjak  <ubizjak@gmail.com>
14056
14057         * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also
14058         size of mode1 to check for tieable modes in MMX case.
14059
14060 2007-03-01  Richard Sandiford  <richard@codesourcery.com>
14061
14062         * Makefile.in (rtlanal.o): Depend on tree.h.
14063         * rtl.h (offset_within_section_p, split_const): Declare.
14064         * rtlanal.c: Include tree.h.
14065         (offset_within_block_p): New function, taken from
14066         mips_offset_within_object_p.
14067         (split_const): New function, taken from mips_split_const.
14068         * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
14069         Declare.
14070         * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
14071         (CONSTANT_ADDRESS_P): Only accept legitimate constants.
14072         (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
14073         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
14074         (m68k_illegitimate_symbolic_constant_p): New function.
14075         * config/m68k/m68k.md (movsi): Remove misleading predicates.
14076         If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
14077         symbolic constant that might be outside the symbol's section,
14078         move the symbol first and then add the offset.
14079         * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
14080         Override.
14081         * config/mips/mips.c (mips_split_const): Delete.
14082         (mips_offset_within_object_p): Delete.
14083         (mips_symbolic_constant_p): Use offset_within_section_p and
14084         split_const instead of mips_offset_within_object_p and
14085         mips_split_const.
14086         (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
14087         (mips_legitimize_const_move, print_operand_reloc)
14088         (mips_dangerous_for_la25_p): Use split_const instead of
14089         mips_split_const.
14090
14091 2007-02-28  Eric Christopher  <echristo@apple.com>
14092
14093         * Makefile.in (install-include-dir): Don't rm -rf include.
14094
14095 2007-02-28  Richard Guenther  <rguenther@suse.de>
14096
14097         PR middle-end/30364
14098         * fold-const.c (fold_binary): Do not associate expressions
14099         with more than one variable for integer types that do not wrap.
14100
14101 2007-02-28  Sandra Loosemore  <sandra@codesourcery.com>
14102
14103         * builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
14104         Delete, and replace with...
14105         (fold_builtin_call_array): This.  Update callers to use it.
14106         * fold-const.c (fold_build_call_list): Delete, and replace with...
14107         (fold_build_call_array): This.
14108         (fold_build_call_list_initializer): Delete, and replace with...
14109         (fold_build_call_array_initializer): This.
14110         * tree.h: Update declarations to reflect above changes.
14111
14112         * c-typeck.c (build_function_call): Store converted arguments
14113         in a stack-allocated array instead of building a list.
14114         (convert_arguments): Store arguments in the array passed in as an
14115         argument, and return the actual number of arguments.
14116         * c-format.c: (check_function_format): Pass arguments in an
14117         array instead of a list.
14118         * c-common.c (check_function_nonnull): Likewise.
14119         (check_function_sentinel): Likewise.
14120         (check_function_arguments): Likewise.
14121         * c-common.h: Update declarations to reflect above changes.
14122
14123 2007-02-28  Jan Hubicka  <jh@suse.cz>
14124
14125         * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN,
14126         PRED_NEGATIVE_RETURN): Update outcomes.
14127
14128 2007-02-28  Bernd Schmidt  <bernd.schmidt@analog.com>
14129
14130         * calls.c (emit_library_call_value_1): Handle partial registers
14131         correctly when building up CALL_INSN_FUNCTION_USAGE.
14132
14133 2007-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14134
14135         * pa/predicates.md (move_src_operand): Allow zero for mode.
14136         * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
14137         move pattern.
14138
14139 2007-02-27  Uros Bizjak  <ubizjak@gmail.com>
14140
14141         PR target/30970
14142         * config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal,
14143         *movv2df_internal): Enable pattern only for valid operand
14144         combinations.
14145         * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers,
14146         tie only 128bit modes. For MMX registers, tie only 64bit modes.
14147
14148 2007-02-27  Mike Stump  <mrs@apple.com>
14149
14150         * config/darwin-crt3.c: Avoid compilation when compiling for a
14151         kext multilib.
14152
14153 2007-02-27  Joseph Myers  <joseph@codesourcery.com>
14154
14155         * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define
14156         FIXED_INCLUDE_DIR.
14157         (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed
14158         for fixed headers and limits.h.
14159         (install-include-dir, install-headers-tar, install-headers-cpio,
14160         install-headers-cp, real-install-headers-tar,
14161         real-install-headers-cpio, real-install-headers-cp): Handle
14162         include-fixed as well as include.
14163         (install-mkheaders): Don't install files that go only in include
14164         not include-fixed.
14165         * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR
14166         from GCC_INCLUDE_DIR.
14167         * gcc.c (process_command): Remove special -BstageN/ handling.
14168         (do_spec_1): Add include-fixed directories.
14169
14170 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
14171
14172         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and
14173         _smulsi3_highpart.
14174         * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart):
14175         New functions.
14176         * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New
14177         patterns.
14178
14179 2007-02-27  Mark Mitchell  <mark@codesourcery.com>
14180
14181         * c-common.c (get_priority): Add check for
14182         SUPPORTS_INIT_PRIORITY.
14183
14184 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
14185
14186         * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.
14187
14188         * config/bfin/bfin.c: Include "cfglayout.h".
14189         (MAX_LSETUP_DISTANCE): New macro.
14190         (struct loop_info): New members incoming, incoming_src and
14191         incoming_dest.  Delete member predecessor.
14192         (length_for_loop): New function.
14193         (bfin_optimize_loop): Handle more different loop structures.
14194         (bfin_discover_loop): Rework detection of predecessor blocks by
14195         examining incoming edges.
14196         (bfin_discover_loops, bfin_free_loops): New functions, broken out of
14197         bfin_reorg_loops.
14198         (bfin_reorder_loops): New function.
14199         (bfin_reorg_loops): Use these three new functions.
14200
14201         * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES,
14202         REG_CLASS_CONTENTS): Add D0REGS through D7REGS.
14203         (CONSTRAINT_LEN): Add entry for 'q'.
14204         (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER.
14205         Add 'q' constraints.
14206         (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass.
14207         (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2.
14208
14209         * config/bfin/bfin.md (add_with_carry): New pattern.
14210         (s_or_u, su_optab, su_modifier): New code macros/attrs.
14211         (<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl,
14212         <su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to
14213         support unsigned multiplies too.  Removed incorrect commutativity from
14214         operand 1 constraint where appropriate.
14215         (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New
14216         patterns.
14217         (<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh,
14218         <su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh):
14219         New patterns.
14220         (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul,
14221         usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul,
14222         usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul,
14223         usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul,
14224         usmulhisi_hh_huh): New patterns.
14225
14226         * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
14227         lshifthi3): Fix output template to use half reg for operand 2.
14228
14229         * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
14230         instead of R2.
14231
14232         * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.
14233
14234 2007-02-27  Andreas Schwab  <schwab@suse.de>
14235
14236         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
14237
14238 2007-02-27  Jan Hubicka  <jh@suse.cz>
14239
14240         * predict.c (last_basic_block_p): Remove.
14241         (tree_estimate_probability): Update return heuristic for commonized
14242         return blocks.
14243
14244 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
14245
14246         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
14247
14248 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
14249
14250         * doc/include/gcc-common.texi (versionsubtitle): New macro.
14251         * doc/cpp.texi: Standardize title page.
14252         * doc/cppinternals.texi: Likewise.
14253         * doc/gcc.texi: Standardize title page, remove version number
14254         from copyright page.
14255         * doc/gccint.texi: Likewise.
14256         * doc/install.texi: Standardize title page, add table of
14257         contents.
14258
14259 2007-02-26  Jan Hubicka  <jh@suse.cz>
14260
14261         * predict.def: Set outcomes according to more recent results.
14262         (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
14263         Remove dead predictors.
14264         * predict.c (return_prediction): Fix pasto.
14265
14266 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
14267
14268         * loop-iv.c (simplify_using_initial_values): Fix oversight in previous
14269         change; avoid a memory leak when returning early.
14270
14271 2007-02-26  Mark Mitchell  <mark@codesourcery.com>
14272
14273         * c-decl.c (static_ctors): Move to c-common.c.
14274         (static_dtors): Likewise.
14275         (finish_function): Use c_record_cdtor_fn.
14276         (build_cdtor): Move to c-common.c.
14277         (c_write_global_declarations): Use c_build_cdtor_fns.
14278         * c-common.h (static_ctors): Declare.
14279         (static_dtors): Likewise.
14280         (c_record_cdtor_fn): Likewise.
14281         (c_build_cdtor_fns): Likewise.
14282         * c-common.c (static_ctors): New variable.
14283         (static_dtors): Likewise.
14284         (c_record_cdtor_fn): New function.
14285         (build_cdtor): Move from c-decl.c
14286         (c_build_cdtor_fns): New function.
14287
14288         * output.h (assemble_addr_to_section): Declare.
14289         (get_cdtor_priority_section): Likewise.
14290         * varasm.c (assemble_addr_to_section): New function.
14291         (get_cdtor_priority_section): Likewise.
14292         (default_named_section_asm_out_destructor): Use them.
14293         (destor_dtor_section_asm_out_destructor): Likewise.
14294         (default_named_section_asm_out_constructor): Likewise.
14295         (default_ctor_section_asm_out_constructor): Likewise.
14296         * config.gcc (*-*-vxworks*): Include vxworks.o.
14297         * config/t-vxworks (vxworks.o): New target.
14298         * config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove.
14299         (TARGET_ASM_CONSTRUCTOR): Define.
14300         (TARGET_ASM_DESTRUCTOR): Likewise.
14301         (vxworks_asm_out_constructor): Declare.
14302         (vxworks_asm_out_destructor): Likewise.
14303
14304         * c-common.c (get_priority): Check that we have not just an
14305         INTEGER_CST, but an integer constant with integeral type.
14306
14307 2007-02-25  Uros Bizjak  <ubizjak@gmail.com>
14308
14309         PR tree-optimization/30938
14310         * tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
14311         use &dt[nargs-1] instead of &dt[nargs] in the call to
14312         vect_is_simple_use().
14313
14314 2007-02-25  Ulrich Weigand  <uweigand@de.ibm.com>
14315
14316         * reload.c (find_reloads_address_1): Handle PLUS expressions resulting
14317         from register elimination as PRE_MODIFY / POST_MODIFY increments.
14318         Do not attempt to handle MEM inside auto-inc expressions.
14319         * reload1.c (eliminate_regs_1): Do not attempt to handle elimination
14320         of a register modified by an auto-inc expression.  However, do handle
14321         elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
14322         (elimination_effects): Prohibit elimination of a register modified
14323         by an auto-inc expression.  Disable register elimination rules whose
14324         target register is modified by an auto-inc expression with variable
14325         increment.
14326
14327 2007-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
14328
14329         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
14330         off-by-one error.
14331         (array_at_struct_end_p): New function.
14332         (idx_infer_loop_bounds): Use it.
14333         (estimate_numbers_of_iterations_loop): Export.
14334         * predict.c (predict_loops): Use estimated_loop_iterations_int.
14335         Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
14336         (tree_estimate_probability): Call record_loop_exits.
14337         * tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
14338         (estimated_loop_iterations, estimated_loop_iterations_int,
14339         estimated_loop_iterations_tree): New functions.
14340         (analyze_siv_subscript_cst_affine,
14341         compute_overlap_steps_for_affine_1_2,
14342         analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
14343         (analyze_miv_subscript): Use estimated_loop_iterations_tree.
14344         * predict.def (PRED_LOOP_ITERATIONS): Update comment.
14345         (PRED_LOOP_ITERATIONS_GUESSED): New.
14346         * cfgloop.c (record_loop_exits): Do nothing if there are no loops.
14347         * cfgloop.h (estimate_numbers_of_iterations_loop,
14348         estimated_loop_iterations_int): Declare.
14349
14350 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
14351
14352         * doc/extend.texi: Document optional priority argument to
14353         constructors and destructors.
14354         * tree.c (init_priority_for_decl): Adjust GTY markers.
14355         (init_ttree): Use priority-info hash functions for
14356         init_priority_for_decl.
14357         (tree_map_eq): Rename to ...
14358         (tree_map_base_eq): ... this.
14359         (tree_map_marked_p): Rename to ...
14360         (tree_map_base_marked_p): ... this.
14361         (tree_map_base_hash): New function.
14362         (decl_init_priority_lookup): Rework.
14363         (decl_fini_priority_lookup): New function.
14364         (decl_priority_info): New function.
14365         (decl_init_priority_insert): Use it.
14366         (decl_fini_priority_insert): Likewise.
14367         (decl_restrict_base_lookup): Adjust for refactoring of tree_map
14368         hierarchy.
14369         (decl_restrict_base_insert): Likewise.
14370         (decl_debug_expr_insert): Likewise.
14371         (decl_value_expr_lookup): Likewise.
14372         (decl_value_expr_insert): Likewise.
14373         * tree.h (priority_type): New type.
14374         (decl_init_priority_lookup): Use priority_type.
14375         (decl_fini_priority_lookup): New function.
14376         (decl_init_priority_insert): Use priority_type.
14377         (decl_fini_priority_insert): New function.
14378         (DECL_HAS_INIT_PRIORITY): Tweak comments.
14379         (DECL_INIT_PRIORITY): Likewise.
14380         (SET_DECL_INIT_PRIORITY): Add comment.
14381         (DECL_FINI_PRIORITY): New macro.
14382         (SET_DECL_FINI_PRIORITY): Likewise.
14383         (DEFAULT_INIT_PRIORITY): Document.
14384         (MAX_INIT_PRIORITY): Likewise.
14385         (MAX_RESERVED_INIT_PRIORITY): Likewise.
14386         (tree_map_base): New type.
14387         (tree_map_base_eq): New function.
14388         (tree_map_base_hash): Likewise.
14389         (tree_map_base_marked_p): Likewise.
14390         (tree_map): Inherit from tree_map_base.
14391         (tree_map_eq): Make it a macro.
14392         (tree_map_marked_p): Likewise.
14393         (tree_int_map): Inherit from tree_map_base.
14394         (tree_int_map_eq): Make it a macro.
14395         (tree_int_map_hash): Likewise.
14396         (tree_int_map_marked_p): Likewise.
14397         (tree_priority_map): New type.
14398         (tree_priority_map_eq): New macro.
14399         (tree_priority_map_hash): Likewise.
14400         (tree_priority_map_marked_p): Likewise.
14401         * varasm.c (emults_decl): Adjust for refactoring of tree_map
14402         hierarchy.
14403         (emutls_common_1): Likewise.
14404         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
14405         * tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring
14406         of tree_map hierarchy.
14407         * tree-cfg.c (move_stmt_r): Likewise.
14408         (new_label_mapper): Likewise.
14409         * c-tree.h (c_expand_body): Move to ...
14410         * c-common.h (c_expand_body): ... here.
14411         * c-decl.c (c_expand_body): Move to ...
14412         * c-common.c (c_expand_body): ... here.
14413         (c_common_attribute_table): Allow 1 argument for the constructor
14414         and destructor attributes.
14415         (get_priority): New function.
14416         (handle_constructor_attribute): Set DECL_INIT_PRIORITY.
14417         (handle_destructor_attribute): Set DECL_FINI_PRIORITY.
14418
14419 2007-02-24  Jan Hubicka  <jh@suse.cz>
14420
14421         PR middle-end/30509
14422         * tree-inline.c (copy_bb): Produce exact copy of EH info when
14423         copying for inlining.
14424
14425 2007-02-24  Uros Bizjak  <ubizjak@gmail.com>
14426             Jan Hubicka  <jh@suse.cz>
14427
14428         PR target/30778
14429         * i386.c (counter_mode): New function.
14430         (expand_set_or_movmem_via_loop): Use it.
14431         (expand_movmem_epilogue): Likewise; fix pasto.
14432         (ix86_expand_movmem): Do emit guard even for constant counts.
14433         (ix86_expand_setmem): Likewise.
14434
14435 2007-02-25  Nick Clifton  <nickc@redhat.com>
14436
14437         * config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
14438         (JUMP_TABLES_IN_TEXT_SECTION): Define.
14439
14440 2007-02-24  Uros Bizjak  <ubizjak@gmail.com>
14441
14442         PR target/30770
14443         * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
14444         count argument with 0x10, not with 0x16.
14445         (expand_setmem_epilogue): Ditto.
14446
14447 2007-02-24  Mike Stump  <mrs@apple.com>
14448
14449         * config/i386/i386.c (output_pic_addr_const): Stubify optimized
14450         symbols.
14451
14452 2007-02-24  Richard Guenther  <rguenther@suse.de>
14453
14454         PR middle-end/30951
14455         * fold-const.c (fold_binary): Fold x +- CST op x for
14456         EQ_EXPR and NE_EXPR.
14457
14458 2007-02-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14459
14460         * pa.md (muldi3): Force subregs to registers in 64-bit expander.
14461
14462 2007-02-24  Jan Hubicka  <jh@suse.cz>
14463
14464         * cgraphunit.c (decide_is_function_needed): Honor
14465         -fkeep-inline-functions.
14466
14467 2007-02-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14468
14469         * builtins.c (fold_builtin_modf): New.
14470         (fold_builtin_2): Use it.
14471
14472 2007-02-24  Bernd Schmidt  <bernd.schmidt@analog.com>
14473
14474         * loop-iv.c (implies_p): Detect additional cases where A implies B.
14475         (determine_max_iter): Take additional LOOP arg; all callers changed.
14476         Lose broken logic dealing with PLUS.  Try to limit the upper bound by
14477         one using simplifications.
14478         (simplify_using_initial_values): Return if the expression becomes
14479         invalid due to altered regs.
14480
14481 2007-02-23  DJ Delorie  <dj@redhat.com>
14482
14483         * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro.
14484
14485 2007-02-23  Mike Stump  <mrs@apple.com>
14486
14487         * tlink.c (scan_linker_output): Parse linker messages from
14488         darwin9's linker better.
14489
14490 2007-02-23  Steve Ellcey  <sje@cup.hp.com>
14491
14492         PR debug/29614
14493         * varpool.c (varpool_assemble_pending_decls):  Set
14494         varpool_last_needed_node to null.
14495
14496 2007-02-23  DJ Delorie  <dj@redhat.com>
14497
14498         * config/i386/i386.c (ix86_data_alignment): Don't specify an
14499         alignment bigger than the object file can handle.
14500
14501 2007-02-23  Uros Bizjak  <ubizjak@gmail.com>
14502
14503         PR target/30825
14504         * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
14505         zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
14506         (*movsf_1): Penalize MMX moves.
14507
14508 2007-02-23  Bernd Schmidt  <bernd.schmidt@analog.com>
14509
14510         * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
14511         2^32-1 or more times unless flag_unsafe_loop_optimizations.
14512
14513         * loop-iv.c (determine_max_iter): Moved in front of its sole user.
14514
14515 2007-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14516
14517         * builtins.c (fold_builtin_logb, fold_builtin_significand): New.
14518         (fold_builtin_1): Use them.
14519         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
14520         BUILT_IN_SIGNIFICAND.
14521
14522 2007-02-23  H.J. Lu  <hongjiu.lu@intel.com>
14523
14524         * config/i386/i386.c (bdesc_1arg): Initialize
14525         IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
14526         "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
14527         (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
14528         and IX86_BUILTIN_MOVSLDUP.
14529
14530 2007-02-22  Paolo Bonzini  <bonzini@gnu.org>
14531
14532         PR rtl-optimization/30841
14533         * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address.
14534
14535 2007-02-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14536
14537         * builtins.c (fold_builtin_frexp): New.
14538         (fold_builtin_2): Use it.
14539
14540 2007-02-22  Mark Mitchell  <mark@codesourcery.com>
14541
14542         * doc/invoke.texi (Spec Files): Document getenv spec function.
14543
14544         * gcc.c (getenv_spec_function): New function.
14545         (static_spec_functions): Add it.
14546         * config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
14547         (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
14548         header files.
14549
14550 2007-02-22  Michael Matz  <matz@suse.de
14551
14552         PR c++/29433
14553         * dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
14554         (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.
14555
14556 2007-02-22  Ian Lance Taylor  <iant@google.com>
14557
14558         PR debug/30898
14559         * dwarf2out.c (concatn_mem_loc_descriptor): New static function.
14560         (mem_loc_descriptor): Call it.
14561
14562 2007-02-22  Zdenek Dvorak  <dvorakz@suse.cz>
14563             Ira Rosen  <irar@il.ibm.com>
14564
14565         * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.
14566
14567 2007-02-22  Ira Rosen  <irar@il.ibm.com>
14568
14569         PR tree-optimization/30843
14570         * tree-vect-transform.c (vect_transform_loop): Remove strided scalar
14571         stores only after all the group is vectorized.
14572
14573 2007-02-22  Dorit Nuzman  <dorit@il.ibm.com>
14574
14575         PR tree-optimization/30858
14576         * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
14577         in the reduction cycle have a single use in the loop.
14578         * tree-vectorizer.h (relevant): Add documentation.
14579
14580 2007-02-20  Mike Stump  <mrs@apple.com>
14581
14582         * configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
14583         * configure: Regenerate.
14584
14585 2007-02-21  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
14586
14587         Change the defaults of some parameters and options.
14588         * config/spu/spu-protos.h (spu_optimization_options): Declare.
14589         * config/spu/spu.c (spu_optimization_options): Add.
14590         (spu_override_options): Change params in spu_optimization_options.
14591         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.
14592
14593         Register 127 is only 16 byte aligned when used as a frame pointer.
14594         * config/spu/spu-protos.h (spu_init_expanders): Declare.
14595         * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
14596         HARD_FRAME_POINTER_REGNUM.
14597         (spu_legitimate_address):  Use regno_aligned_for_reload.
14598         (regno_aligned_for_load):  HARD_FRAME_POINTER_REGNUM is only 16 byte
14599         aligned when frame_pointer_needed is true.
14600         (spu_init_expanders): New.  Set alignment of HARD_FRAME_POINTER_REGNUM
14601         to 8 bits.
14602         * config/spu/spu.h (INIT_EXPANDERS): Define.
14603
14604         Make sure shift and rotate instructions have valid immediate operands.
14605         * config/spu/predicates.md (spu_shift_operand): Remove.
14606         * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
14607         * config/spu/constraints.md (W, O): Extend range.
14608         * config/spu/spu.md (umask, nmask): Define.
14609         (ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
14610         lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
14611         rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
14612         rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
14613         spu_nonmem_operand instead of spu_shift_operands.  Use new modifiers.
14614         (lshr<mode>3_reg):  Fix rtl description.
14615
14616         Make sure mulhisi immediate operands are valid.
14617         * config/spu/predicates.md (imm_K_operand): Add.
14618         * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.
14619
14620         Generate constants using fsmbi and andi.
14621         * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
14622         (print_operand, spu_split_immediate, classify_immediate,
14623         fsmbi_const_p): Handle IC_FSMBI2.
14624
14625         Correctly handle a CONST_VECTOR containing symbols.
14626         * config/spu/spu.c (print_operand): Handle HIGH correctly.
14627         (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
14628         (immediate_load_p): Allow symbols that use 2 instructions to create.
14629         (classify_immediate, spu_builtin_splats):  Don't accept a CONST_VECTOR
14630         with symbols when flag_pic is set.
14631         (const_vector_immediate_p): New.
14632         (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
14633         accept a CONST_VECTOR with symbols.
14634         (spu_legitimate_constant_p): Use const_vector_immediate_p.  Don't
14635         accept a CONST_VECTOR with symbols when flag_pic is set.  Handle HIGH
14636         correctly.
14637         * config/spu/spu.md (high, low): Delete.
14638         (low_<mode>): Define.
14639
14640         Remove INTRmode and INTR_REGNUM, which didn't work.
14641         * config/spu/spu.c (spu_conditional_register_usage): Remove reference
14642         of INTR_REGNUM.
14643         * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
14644         set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
14645         peephole2 pattern): Don't use INTR or 131.
14646         (movintrcc): Delete.
14647         * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
14648         CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
14649         * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
14650         (UNSPEC_SET_INTR): Add.
14651         * config/spu/spu-modes.def (INTR): Remove.
14652
14653         More accurate warnings about run-time relocations.
14654         * config/spu/spu.c (reloc_diagnostic): Test in_section.
14655
14656         Correctly warn about immediate arguments to specific intrinsics.
14657         * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
14658         (spu_expand_builtin_1): Call spu_check_builtin_parm before checking
14659         the instruction predicate.
14660
14661         Fix tree check errors with latest update.
14662         * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
14663         CALL_EXPR_ARG.
14664         (spu_expand_builtin): Use CALL_EXPR_FN.
14665
14666         Add missing specific intrinsics.
14667         * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
14668         si_bislede.
14669         * config/spu/spu_internals.h: Ditto.
14670
14671         Fix incorrect operand modifiers.
14672         * config/spu/spu-builtins.md (spu_mpy, spu_mpyu):  Remove use of %H.
14673         * config/spu/spu.md (xor<mode>3):  Change %S to %J.
14674
14675         Optimize one case of zero_extend of a vec_select.
14676         * config/spu/spu.md (_vec_extractv8hi_ze):  Add.
14677
14678         Accept any immediate for hbr.
14679         * config/spu/spu.md (hbr):  Change s constraints to i.
14680
14681 2007-02-21  Paul Brook  <paul@codesourcery.com>
14682
14683         * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
14684         condexec_count when skipping USE and CLOBBER.
14685
14686 2007-02-21  Nick Clifton  <nickc@redhat.com>
14687
14688         * common.opt (Warray-bounds): Add Warning attribute.
14689         (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch):
14690         Likewise.
14691         (fsized-zeroes): Add Optimization attribute.
14692         (fsplit-wide-types, ftree-scev-cprop): Likewise.
14693         * c.opt (Wc++0x-compat): Add Warning attribute.
14694
14695 2007-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
14696
14697         PR middle-end/30761
14698         * reload1.c (eliminate_regs_in_insn): In the single_set special
14699         case, attempt to re-recognize the insn before falling back to
14700         having reload fix it up.
14701
14702 2007-02-20  Eric Christopher  <echristo@gmail.com>
14703
14704         * config/frv/frv.c (frv_read_argument): Take a tree and int argument.
14705         Rewrite accordingly.
14706         (frv_read_iacc_argument): Ditto.
14707         (frv_expand_set_builtin): Take a call instead of arglist, update for
14708         above changes.
14709         (frv_expand_unop_builtin): Ditto.
14710         (frv_expand_binop_builtin): Ditto.
14711         (frv_expand_cut_builtin): Ditto.
14712         (frv_expand_binopimm_builtin): Ditto.
14713         (frv_expand_voidbinop_builtin): Ditto.
14714         (frv_expand_int_void2arg): Ditto.
14715         (frv_expand_prefetches): Ditto.
14716         (frv_expand_voidtriop_builtin): Ditto.
14717         (frv_expand_voidaccop_builtin): Ditto.
14718         (frv_expand_load_builtin): Ditto.
14719         (frv_expand_store_builtin): Ditto.
14720         (frv_expand_mdpackh_builtin): Ditto.
14721         (frv_expand_mclracc_builtin): Ditto.
14722         (frv_expand_mrdacc_builtin): Ditto.
14723         (frv_expand_mwtacc_builtin): Ditto.
14724         (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update
14725         calls for above.
14726
14727 2007-02-20  Janis Johnson  <janis187@us.ibm.com>
14728
14729         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
14730         * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
14731         cmpb instruction.
14732         (HAVE_GAS_DFP): Check for assembler support of decimal floating
14733         point instructions.
14734         * configure: Regenerate.
14735         * config.in: Regenerate.
14736         * config/rs6000/rs6000.opt (mcmpb, mdfp): New.
14737         * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
14738         masks to power6 and power6x and to POWERPC_MASKS.
14739         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
14740         _ARCH_PWR6.
14741         * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
14742         * config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
14743         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
14744         Access PROTOTYPE as variable, not mask.
14745
14746 2007-02-20  Steven Bosscher  <steven@gcc.gnu.org>
14747
14748         * rtl.h (remove_reg_equal_equiv_notes): New prototype.
14749         * rtlanal.c (remove_reg_equal_equiv_notes): New function.
14750         * combine.c (adjust_for_new_dest): Use it.
14751         * postreload.c (reload_combine): Likewise.
14752
14753 2007-02-20  Steven Bosscher  <steven@gcc.gnu.org>
14754
14755         * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ*
14756         notes on an insn with multiple sets, even if single_set returns
14757         non-NULL for that insn.
14758
14759 2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14760
14761         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
14762         scalbn and scalbln.
14763
14764 2007-02-20  Geoffrey Keating  <geoffk@apple.com>
14765
14766         * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
14767         if user didn't pass it.
14768         * config/i386/darwin.h (CC1_SPEC): Likewise.
14769         * config/rs6000/darwin.h (CC1_SPEC): Likewise.
14770         (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
14771         -mmacosx-version-min.
14772
14773 2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14774             Uros Bizjak  <ubizjak@gmail.com>
14775
14776         * optabs.h (enum optab_index): Add new OTI_scalb.
14777         (scalb_optab): Define corresponding macro.
14778         * optabs.c (init_optabs): Initialize scalb_optab.
14779         * genopinit.c (optabs): Implement scalb_optab using scalb?f3
14780         patterns.
14781         * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
14782         BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
14783         (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
14784         and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
14785         flag_unsafe_math_optimizations is set.
14786
14787         * config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
14788         to implement scalbf, scalb and scalbl built-ins as inline x87
14789         intrinsics.
14790
14791 2007-02-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14792             DJ Delorie <dj@redhat.com>
14793
14794         PR other/30824
14795         * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to...
14796         (diagnostic_report_diagnostic): ... here, and turn them into real
14797         errors. If warnings are inhibited, no need to do anything.
14798
14799 2007-02-20  Uros Bizjak  <ubizjak@gmail.com>
14800
14801         * config/i386/i386.md (expm1xf2): Reorder insn sequence for
14802         better code generation.
14803
14804 2007-02-20  Ben Elliston  <bje@au.ibm.com>
14805
14806         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.
14807
14808 2007-02-20  Kazu Hirata  <kazu@codesourcery.com>
14809
14810         * config/alpha/alpha.c, config/alpha/alpha.md,
14811         config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c,
14812         config/alpha/vms-psxcrt0-64.c, config/arc/arc.c,
14813         config/arc/arc.h, config/arm/arm.c, config/arm/arm.md,
14814         config/arm/lib1funcs.asm: Follow spelling conventions.
14815
14816         * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,
14817         config/fr30/fr30.md, config/i386/i386.h,
14818         config/iq2000/iq2000.h, config/iq2000/predicates.md,
14819         config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h,
14820         config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
14821         config/pdp11/pdp11.c, config/pdp11/pdp11.h,
14822         config/rs6000/altivec.md, config/rs6000/rs6000.c,
14823         config/s390/s390-modes.def, config/sparc/netbsd-elf.h,
14824         config/sparc/sparc.c, config/sparc/sparc.h,
14825         config/sparc/sparc.md, config/spu/constraints.md,
14826         config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling
14827         conventions.
14828
14829 2007-02-20  Alan Modra  <amodra@bigpond.net.au>
14830
14831         PR target/29943
14832         * varasm.c (use_blocks_for_decl_p): Return false for decls with
14833         alias attribute.
14834
14835 2007-02-19  Kazu Hirata  <kazu@codesourcery.com>
14836
14837         * doc/invoke.texi (-ftree-lrs): Remove.
14838
14839 2007-02-19  Diego Novillo  <dnovillo@redhat.com>
14840
14841         * tree-ssa-pre.c (create_value_expr_from): Initialize POOL to
14842         NULL.
14843
14844 2007-02-19  Lee Millward  <lee.millward@codesourcery.com>
14845
14846         * config/ia64/ia64.c (ia64_expand_builtin): Use the
14847         new CALL_EXPR_FN macro for retrieving the function
14848         declaration of the input expression.
14849
14850 2007-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14851
14852         * c.opt (Waddress): New.
14853         * common.opt (Walways-true): Delete.
14854         (Wstring-literal-comparison): Delete.
14855         * doc/invoke.texi (Warning Options): Delete -Walways-true and
14856         -Wstring-literal-comparison. Add -Waddress.
14857         (Waddress): New.
14858         (Walways-true): Delete.
14859         (Wstring-literal-comparison): Delete.
14860         * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
14861         consistently instead of -Walways-true in example.
14862         * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
14863         * c-typeck.c (parser_build_binary_op): Replace
14864         -Wstring-literal-comparison and -Walways-true with -Waddress.
14865         * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
14866         with -Waddress.
14867
14868 2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>
14869
14870         * tree-cfg.c (dump_function_to_file): Be prepared for functions
14871         without DECL_STRUCT_FUNCTION initialized.
14872
14873 2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>
14874
14875         * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
14876         due to calls to functions taking pointers as parameters.
14877
14878 2007-02-19  Richard Henderson  <rth@redhat.com>
14879
14880         PR debug/29558
14881         * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
14882         in memory.
14883
14884 2007-02-19  Andreas Krebbel  <krebbel1@de.ibm.com>
14885
14886         * config/s390/s390.c (s390_call_saved_register_used,
14887         s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are
14888         accessed to the new scheme.
14889
14890 2007-02-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
14891
14892         * config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p)
14893         (cris_print_index, cris_print_operand, cris_print_operand_address)
14894         (cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost)
14895         (cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx)
14896         (cris_expand_pic_call_address): Use xxx_P predicate macros instead of
14897         GET_CODE () == xxx.
14898         * config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q,
14899         EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P,
14900         GO_IF_LEGITIMATE_ADDRESS): Ditto.
14901         * config/cris/cris.md (define_insns: *btst, movdi, *mov_side<mode>)
14902         (*mov_sidesisf, *mov_side<mode>_mem, *mov_sidesisf_mem)
14903         (*clear_side<mode>, movsi, *movsi_internal, *ext_sideqihi)
14904         (*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, addsi3)
14905         (*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side)
14906         (*extop<mode>si_swap_side, addi_mul, *addi,andsi3, andhi3, ashl<mode>3)
14907         (uminsi3, call, call_value): Ditto.
14908         (define_split: indir_to_reg_split, unnamed): Ditto.
14909
14910 2007-02-19  Dorit Nuzman  <dorit@il.ibm.com>
14911
14912         PR tree-optimization/30975
14913         * tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove
14914         wrong assert.
14915
14916 2007-02-18  Eric Christopher  <echristo@gmail.com>
14917
14918         * mips.c (mips_prepare_builtin_arg): Add argnum parameter.
14919         Remove use of arglist.
14920         (mips_expand_builtin): Remove use of arglist, pass in expr.
14921         (mips_expand_builtin_direct): Rewrite handling for arglist removal.
14922         (mips_expand_builtin_movtf): Ditto.
14923         (mips_expand_builtin_compare): Ditto.
14924
14925 2007-02-19  Alexandre Oliva  <aoliva@redhat.com>
14926
14927         * tree-sra.c (sra_build_assignment): Replace assertion
14928         checking with a comment explaining why it can't be done.
14929
14930 2007-02-18  Sandra Loosemore  <sandra@codesourcery.com>
14931
14932         PR middle-end/30833
14933         * tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed
14934         during CALL_EXPR representation conversion.
14935         * tree-ssa-propagate.c (set_rhs): Likewise.
14936
14937 2007-02-19  Alexandre Oliva  <aoliva@redhat.com>
14938
14939         * tree-sra.c (sra_build_assignment): Disable assertion checking
14940         for now.
14941
14942 2007-02-18  Roger Sayle  <roger@eyesopen.com>
14943
14944         * function.c (gimplify_parameters): Call build_gimple_modify_stmt
14945         instead of calling build2 with a GIMPLE_MODIFY_STMT.
14946         * gimple-low.c (lower_function_body, lower_builtin_setjmp):
14947         Likewise.
14948         * gimplify.c (build_stack_save_restore, gimplify_return_expr,
14949         gimplify_decl_expr,  gimplify_self_mod_expr, gimplify_cond_expr,
14950         gimplify_init_ctor_eval_range, gimple_push_cleanup,
14951         gimplify_omp_for, gimplify_omp_atomic_pipeline,
14952         gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos,
14953         force_gimple_operand): Likewise.
14954         * ipa-cp.c (constant_val_insert): Likewise.
14955         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
14956         lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y,
14957         perfect_nestify): Likewise.
14958         * langhooks.c (lhd_omp_assignment): Likewise.
14959         * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses,
14960         lower_copyprivate_clauses, lower_send_clauses,
14961         lower_send_shared_vars, expand_parallel_call,
14962         expand_omp_for_generic, expand_omp_for_static_nochunk,
14963         expand_omp_for_static_chunk, expand_omp_sections,
14964         lower_omp_single_copy, lower_omp_for_lastprivate,
14965         lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise.
14966         * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
14967         tree_mod_subtract, tree_ic, tree_stringop_fixed_value):
14968         Likewise.
14969
14970 2007-02-19  Kazu Hirata  <kazu@codesourcery.com>
14971
14972         * config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h,
14973         config/sh/sh.md: Follow spelling conventions.
14974
14975         * config/frv/frv.c, config/frv/frv.h, config/frv/frv.md,
14976         config/frv/predicates.md: Follow spelling conventions.
14977
14978         * config/m68k/linux-unwind.h: Fix a comment typo.
14979         * target.h: Follow spelling conventions.
14980
14981 2007-02-18  Roger Sayle  <roger@eyesopen.com>
14982
14983         PR rtl-optimization/28173
14984         * simplify-rtx.c (simplify_binary_operation_1) <IOR>:  Optimize
14985         (X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
14986         Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
14987         Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
14988         <AND>: Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2).
14989
14990 2007-02-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14991
14992         * builtins.c (fold_builtin_load_exponent): New.
14993         (fold_builtin_2): Use it.
14994
14995 2007-02-18  Steven Bosscher  <steven@gcc.gnu.org>
14996
14997         PR rtl-optimization/30773
14998         * local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
14999         if we fail to attach a REG_EQUIV note.
15000
15001 2007-02-18  David Edelsohn  <edelsohn@gnu.org>
15002             Roger Sayle  <roger@eyesopen.com>
15003
15004         * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter.
15005
15006 2007-02-18  Sandra Loosemore  <sandra@codesourcery.com>
15007
15008         * calls.c (initialize_argument_information): Pass original EXP
15009         and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments.  Move
15010         code to split complex arguments here, as part of initializing the
15011         ARGS array.
15012         (expand_call): Remove code that builds a list of arguments and
15013         inserts implicit arguments into it.  Instead, just count how many
15014         implicit arguments there will be so we can determine the size of
15015         the ARGS array, and let initialize_argument_information do the work.
15016         (split_complex_values): Delete unused function.
15017
15018 2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>
15019
15020         * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
15021
15022 2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>
15023
15024         * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
15025         for arg pointer based indexed addressing.
15026
15027 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
15028
15029         * config/ia64/ia64.h, config/ia64/ia64.md,
15030         config/ia64/predicates.md, config/ia64/sysv4.h: Follow
15031         spelling conventions.
15032
15033 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
15034
15035         * config/m68k/m68k.c (split_di): New.
15036         * config/m68k/m68k-protos.h: Declare split_di.
15037         * config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*):
15038           Improve predicate handling and split constant shifts.
15039
15040 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
15041
15042         * config/m68k/m68k.md (extv,extzv,insv): disable dynamic
15043         parameter for register bitfield operations, general predicates
15044         cleanup
15045
15046 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
15047
15048         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
15049         * config/m68k/linux-unwind.h: New file.
15050
15051 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
15052
15053         * cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
15054         config/i386/athlon.md, config/ia64/ia64.md,
15055         config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
15056         df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
15057         ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
15058         tree-ssa-loop-niter.c, tree-vect-analyze.c,
15059         tree-vect-transform.c: Fix comment typos.
15060
15061 2007-02-17  Kazu Hirata  <kazu@codesourcery.com>
15062
15063         * sched-deps.c (find_insn_list): Remove.
15064         * sched-int.h: Remove the prototype for find_insn_list.
15065
15066 2007-02-16  Geoffrey Keating  <geoffk@apple.com>
15067
15068         * config/darwin.h (LINK_SPEC): Always pass -macosx_version_min
15069         to linker.
15070         (DARWIN_EXTRA_SPECS): Add %(darwin_minversion).
15071         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call
15072         darwin_rs6000_override_options.
15073         (C_COMMON_OVERRIDE_OPTIONS): Expect
15074         darwin_macosx_version_min to be non-NULL always.
15075         (TARGET_C99_FUNCTIONS): Likewise.
15076         (CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
15077         (DARWIN_MINVERSION_SPEC): New.
15078         * config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
15079         * config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
15080         to cc1*.
15081         (DARWIN_MINVERSION_SPEC): New.
15082         * config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
15083         value.
15084         * config/darwin-c.c (darwin_cpp_builtins): Expect
15085         darwin_macosx_version_min to be non-NULL always.
15086
15087         * config/rs6000/rs6000.c: Clean up trailing whitespace.
15088
15089 2007-02-16  Uros Bizjak  <ubizjak@gmail.com>
15090
15091         * config/i386/i386.h (x86_use_xchgb): New.
15092         (TARGET_USE_XCHGB): New macro.
15093         * config/i386/i386.c (x86_use_xchgb): Set for PENT4.
15094         * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
15095         Split after reload into bswaphi for shifts of 8.
15096         (bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
15097         (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
15098         or when optimizing for size.
15099
15100 2007-02-16  Richard Guenther  <rguenther@suse.de>
15101             Christian Bruel  <christian.bruel@st.com>
15102
15103         * fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like
15104         DECLs but prefer SSA_NAMEs over DECLs.
15105
15106 2007-02-16  Richard Guenther  <rguenther@suse.de>
15107
15108         * tree-flow-inline.h (single_imm_use_p): Remove.
15109         (zero_imm_uses_p): Likewise.
15110         * tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use
15111         instead of single_imm_use_p.
15112         * tree-cfg.c (replace_uses_by): Use has_zero_use instead of
15113         zero_imm_uses_p.
15114
15115 2007-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15116
15117         PR other/27843
15118         * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
15119         nested double- and backquotes.
15120
15121 2007-02-15  Roger Sayle  <roger@eyesopen.com>
15122
15123         PR middle-end/30391
15124         * tree.c (expr_align): Handle MODIFY_EXPR.  GIMPLE_MODIFY_STMT
15125         should be unreachable.
15126         (build2_stat): Allow construction of MODIFY_EXPR at any time.
15127         For the time being redirect GIMPLE_MODIFY_STMT to the new
15128         (renamed) build_gimple_modify_stmt_stat.
15129         (build2_gimple_stat): Rename to...
15130         (build_gimple_modify_stmt_stat): Now longer take a CODE argument.
15131         Always build a GIMPLE_MODIFY_STMT node.
15132         * tree.h (build2_gimple, build2_gimple_stat): Delete.
15133         (build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New
15134         declarations.
15135
15136         * tree-cfg.c (factor_computed_gotos, tree_merge_blocks,
15137         gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple.
15138         * tree-complex.c (set_component_ssa_name, expand_complex_move,
15139         expand_complex_div_wide): Likewise.
15140         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
15141         * tree-ssa-loop-im.c (schedule_sm): Likewise.
15142         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise.
15143         * tree-ssa-loop-manip.c (create_iv): Likewise.
15144         * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
15145         abs_replacement): Likewise.
15146         * tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt,
15147         realify_fake_stores): Likewise.
15148
15149         * builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR
15150         node rather than a GIMPLE_MODIFY_STMT node.
15151         (std_gimpify_va_arg_expr, expand_builtin_va_copy,
15152         fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos):
15153         Likewise.
15154         (integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT.
15155         * expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and
15156         GIMPLE_MODIFY_STMT.
15157
15158 2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15159
15160         PR middle-end/30433
15161         * fold-const.c (fold_comparison): Add back the
15162         folding of constant complex comparisions.
15163
15164 2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15165
15166         PR middle-end/30729
15167         * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
15168         effects unknown to this function, return early.
15169
15170 2007-02-15  Ian Lance Taylor  <iant@google.com>
15171
15172         * lower-subreg.c (move_eh_region_note): New static function.
15173         (resolve_simple_move): Call it.
15174         (decompose_multiword_subregs): Track blocks for which we resolve a
15175         simple move which is also a control flow insn.  Pass them to
15176         find_many_sub_basic_blocks.
15177         (pass_lower_subreg): Add TODO_verify_flow.
15178         (pass_lower_subreg2): Likewise.
15179
15180 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
15181             Brooks Moses  <brooks.moses@codesourcery.com>
15182             Lee Millward  <lee.millward@codesourcery.com>
15183
15184         * tree.h (enum tree_code_class): Add tcc_vl_exp.
15185         (VL_EXP_CLASS_P): New.
15186         (TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
15187         TREE_CODE_LENGTH.
15188         (TREE_OPERAND_CHECK_CODE): Likewise.
15189         (GIMPLE_STMT_OPERAND_CHECK): Likewise.
15190         (TREE_RTL_OPERAND_CHECK): Likewise.
15191         (tree_operand_check_failed): Make second parameter the whole tree
15192         instead of its code.  Fixed callers.
15193         (VL_EXP_CHECK): New.
15194         (TREE_OPERAND_LENGTH): New.
15195         (VL_EXP_OPERAND_LENGTH): New.
15196         (CALL_EXPR_FN): New.
15197         (CALL_EXPR_STATIC_CHAIN): New.
15198         (CALL_EXPR_ARGS): New.
15199         (CALL_EXPR_ARG): New.
15200         (call_expr_nargs): New.
15201         (CALL_EXPR_ARGP): New.
15202         (build_nt_call_list): Declare.
15203         (build_vl_exp_stat): Declare.
15204         (build_vl_exp): New.
15205         (build_call_list): Declare.
15206         (build_call_nary): Declare.
15207         (build_call_valist): Declare.
15208         (build_call_array): Declare.
15209         (call_expr_arg): Declare.
15210         (call_expr_argp): Declare.
15211         (call_expr_arglist): Declare.
15212         (fold_build_call_list): Declare.
15213         (fold_build_call_list_initializer): Declare.
15214         (fold_call_expr): Declare to replace fold_builtin.
15215         (fold_builtin_fputs): Update to agree with modified definition.
15216         (fold_builtin_strcpy): Likewise.
15217         (fold_builtin_strncpy): Likewise.
15218         (fold_builtin_memory_chk): Likewise.
15219         (fold_builtin_stxcpy_chk): Likewise.
15220         (fold_builtin_strncpy_chk): Likewise.
15221         (fold_builtin_next_arg): Likewise.
15222         (fold_build_call_expr): Declare.
15223         (fold_builtin_call_list): Declare.
15224         (fold_builtin_call_valist): Declare.
15225         (build_call_expr): Declare.
15226         (validate_arglist): Update to agree with modified definition.
15227         (tree_operand_length): New.
15228         (call_expr_arg_iterator): New.
15229         (init_call_expr_arg_iterator): New.
15230         (next_call_expr_arg): New.
15231         (first_call_expr_arg): New.
15232         (more_call_expr_args_p): New.
15233         (FOR_EACH_CALL_EXPR_ARG): New.
15234
15235         * tree.c (tree_code_class_string): Add entries for tcc_vl_exp
15236         and tcc_gimple_stmt.
15237         (tree_code_size): Update documentation.  Use sizeof (tree) rather
15238         than sizeof (char *).
15239         (tree_size): Likewise.  Add case for tcc_vl_exp.
15240         (tree_node_structure): Add case for tcc_vl_exp.
15241         (contains_placeholder_p): Likewise.
15242         (substitute_in_expr): Likewise.
15243         (substitute_placeholder_in_expr): Likewise.
15244         (stabilize_reference_1): Likewise.
15245         (build3_stat): Remove logic for CALL_EXPRs.  Replace with assertion
15246         to diagnose breakage of this interface for constructing CALL_EXPRs.
15247         (build_nt): Add similar assertion here.
15248         (build_nt_call_list): New.
15249         (simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
15250         (iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
15251         TREE_CODE_LENGTH.
15252         (get_callee_fndecl): Use new CALL_EXPR accessors.
15253         (tree_operand_check_failed): Change parameters to pass entire node
15254         instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
15255         (process_call_operands): New.
15256         (build_vl_exp_stat): New.
15257         (build_call_list): New.
15258         (build_call_nary): New.
15259         (build_call_valist): New.
15260         (build_call_array): New.
15261         (walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
15262         (call_expr_arglist): New.
15263
15264         * tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
15265         tcc_vl_exp instead of a fixed-size tcc_expression.
15266
15267         * doc/c-tree.texi (CALL_EXPR): Document new representation and
15268         accessors for CALL_EXPRs.
15269         (AGGR_INIT_EXPR): Likewise.
15270
15271 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
15272             Brooks Moses  <brooks.moses@codesourcery.com>
15273             Lee Millward  <lee.millward@codesourcery.com>
15274
15275         * builtins.c (c_strlen): Return NULL_TREE instead of 0.
15276         (expand_builtin_nonlocal_goto): Change parameter to be entire
15277         CALL_EXPR instead of an arglist.  Use new CALL_EXPR accessors.
15278         (expand_builtin_prefetch): Likewise.
15279         (expand_builtin_classify_type): Likewise.
15280         (mathfn_built_in): Return NULL_TREE instead of 0.
15281         (expand_errno_check): Use new CALL_EXPR accessors.
15282         (expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
15283         Return NULL_RTX instead of 0.
15284         (expand_builtin_mathfn_2): Likewise.
15285         (expand_builtin_mathfn_3): Likewise.
15286         (expand_builtin_interclass_mathfn): Likewise.
15287         (expand_builtin_sincos): Likewise.
15288         (expand_builtin_cexpi): Likewise.
15289         (expand_builtin_int_roundingfn): Likewise.
15290         (expand_builtin_int_roundingfn_2): Likewise.
15291         (expand_builtin_pow): Likewise.
15292         (expand_builtin_powi): Likewise.
15293         (expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
15294         of arglist, fixing callers appropriately.  Use new CALL_EXPR
15295         accessors and constructors.  Return NULL_RTX instead of 0.
15296         (expand_builtin_strstr): Likewise.
15297         (expand_builtin_strchr): Likewise.
15298         (expand_builtin_strrchr): Likewise.
15299         (expand_builtin_strpbrk): Likewise.
15300         (expand_builtin_memcpy): Likewise.
15301         (expand_builtin_mempcpy): Likewise.
15302         (expand_builtin_mempcpy_args): New.
15303         (expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
15304         (expand_builtin_memmove_args): New.
15305         (expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
15306         (expand_movstr): Likewise.
15307         (expand_builtin_strcpy): Likewise.
15308         (expand_builtin_strcpy_args): New.
15309         (expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
15310         (expand_builtin_strncpy): Likewise.
15311         (expand_builtin_memset): Likewise.
15312         (expand_builtin_memset_args): New.
15313         (expand_builtin_bzero): Similarly to expand_builtin_memset.
15314         (expand_builtin_memcmp): Likewise.
15315         (expand_builtin_strcmp): Likewise.
15316         (expand_builtin_strncmp): Likewise.
15317         (expand_builtin_strcat): Likewise.
15318         (expand_builtin_strncat): Likewise.
15319         (expand_builtin_strspn): Likewise.
15320         (expand_builtin_strcspn): Likewise.
15321         (expand_builtin_args_info): Likewise.
15322         (expand_builtin_va_start): Likewise.
15323         (gimplify_va_arg_expr): Likewise.
15324         (expand_builtin_va_end): Likewise.
15325         (expand_builtin_va_copy): Likewise.
15326         (expand_builtin_frame_address): Likewise.
15327         (expand_builtin_alloca): Likewise.
15328         (expand_builtin_bswap): Likewise.
15329         (expand_builtin_unop): Likewise.
15330         (expand_builtin_fputs): Likewise.
15331         (expand_builtin_expect): Likewise.
15332         (expand_builtin_fabs): Likewise.
15333         (expand_builtin_copysign): Likewise.
15334         (expand_builtin_printf): Likewise.
15335         (expand_builtin_fprintf): Likewise.
15336         (expand_builtin_sprintf): Likewise.
15337         (expand_builtin_init_trampoline): Likewise.
15338         (expand_builtin_signbit): Likewise.
15339         (expand_builtin_fork_or_exec): Likewise.
15340         (expand_builtin_sync_operation): Likewise.
15341         (expand_builtin_compare_and_swap): Likewise.
15342         (expand_builtin_lock_test_and_set): Likewise.
15343         (expand_builtin_lock_release): Likewise.
15344         (expand_builtin): Likewise.
15345         (builtin_mathfn_code): Likewise.
15346
15347         (fold_builtin_constant_p): Pass call arguments individually instead
15348         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
15349         accessors and constructors.  Return NULL_TREE instead of 0.
15350         (fold_builtin_expect): Likewise.
15351         (fold_builtin_classify_type): Likewise.
15352         (fold_builtin_strlen): Likewise.
15353         (fold_builtin_nan): Likewise.
15354         (integer_valued_real_p): Likewise.
15355         (fold_trunc_transparent_mathfn): Likewise.
15356         (fold_fixed_mathfn): Likewise.
15357         (fold_builtin_cabs): Likewise.
15358         (fold_builtin_sqrt): Likewise.
15359         (fold_builtin_cbrt): Likewise.
15360         (fold_builtin_cos): Likewise.
15361         (fold_builtin_cosh): Likewise.
15362         (fold_builtin_tan): Likewise.
15363         (fold_builtin_sincos): Likewise.
15364         (fold_builtin_cexp): Likewise.
15365         (fold_builtin_trunc): Likewise.
15366         (fold_builtin_floor): Likewise.
15367         (fold_builtin_ceil): Likewise.
15368         (fold_builtin_round): Likewise.
15369         (fold_builtin_int_roundingfn): Likewise.
15370         (fold_builtin_bitop): Likewise.
15371         (fold_builtin_bswap): Likewise.
15372         (fold_builtin_logarithm): Likewise.
15373         (fold_builtin_hypot): Likewise.
15374         (fold_builtin_pow): Likewise.
15375         (fold_builtin_powi): Likewise.
15376         (fold_builtin_exponent): Likewise.
15377         (fold_builtin_memset): Likewise.
15378         (fold_builtin_bzero): Likewise.
15379         (fold_builtin_memory_op): Likewise.
15380         (fold_builtin_bcopy): Deleted; call site changed to invoke
15381         fold_builtin_memory_op directly.
15382         (fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
15383         (fold_builtin_strncpy): Likewise.
15384         (fold_builtin_memcmp): Likewise.
15385         (fold_builtin_strcmp): Likewise.
15386         (fold_builtin_strncmp): Likewise.
15387         (fold_builtin_signbit): Likewise.
15388         (fold_builtin_copysign): Likewise.
15389         (fold_builtin_isascii): Likewise.
15390         (fold_builtin_toascii): Likewise.
15391         (fold_builtin_isdigit): Likewise.
15392         (fold_builtin_fabs): Likewise.
15393         (fold_builtin_abs): Likewise.
15394         (fold_builtin_fmin_fmax): Likewise.
15395         (fold_builtin_carg): Likewise.
15396         (fold_builtin_classify): Likewise.
15397         (fold_builtin_unordered_cmp): Likewise.
15398
15399         (fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
15400         New functions split out from fold_builtin_1.
15401         (fold_builtin_n): New.
15402         (fold_builtin_varargs): New.
15403         (fold_builtin): Deleted.  Most callers changed to use fold_call_expr
15404         instead.
15405         (fold_call_expr): New.
15406         (build_function_call_expr): Rewrite to use new helper function.
15407         (fold_builtin_call_list): New.
15408         (build_call_expr): New.
15409         (fold_builtin_call_valist): New.
15410         (rewrite_call_expr): New.
15411         (validate_arg): New.
15412         (validate_arglist): Change parameter to be entire CALL_EXPR instead
15413         of an arglist.  Change return type to bool.  Use new CALL_EXPR
15414         accessors.
15415
15416         (fold_builtin_strstr):  Pass call arguments individually instead
15417         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
15418         accessors and constructors.  Return NULL_TREE instead of 0.
15419         (fold_builtin_strchr): Likewise.
15420         (fold_builtin_strrchr): Likewise.
15421         (fold_builtin_strpbrk): Likewise.
15422         (fold_builtin_strcat): Likewise.
15423         (fold_builtin_strncat): Likewise.
15424         (fold_builtin_strspn): Likewise.
15425         (fold_builtin_strcspn): Likewise.
15426         (fold_builtin_fputs): Likewise.
15427         (fold_builtin_next_arg): Likewise.
15428         (fold_builtin_sprintf): Likewise.
15429
15430         (expand_builtin_object_size): Use new CALL_EXPR accessors.  Use
15431         NULL_RTX instead of 0.
15432         (expand_builtin_memory_chk): Likewise.
15433         (maybe_emit_chk_warning): Likewise.
15434         (maybe_emit_sprintf_chk_warning): Likewise.
15435
15436         (fold_builtin_object_size): Pass call arguments individually instead
15437         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
15438         accessors and constructors.  Return NULL_TREE instead of 0.
15439         (fold_builtin_memory_chk): Likewise.
15440         (fold_builtin_stxcpy_chk): Likewise.
15441         (fold_builtin_strncpy_chk): Likewise.
15442         (fold_builtin_strcat_chk): Likewise.
15443         (fold_builtin_strcat_chk): Likewise.
15444         (fold_builtin_strncat_chk): Likewise.
15445         (fold_builtin_sprintf_chk): Likewise.
15446         (fold_builtin_snprintf_chk): Likewise.
15447         (fold_builtin_printf): Likewise.
15448         (fold_builtin_vprintf): Likewise.
15449
15450         * fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
15451         constructors.
15452         (operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
15453         (make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
15454         (extract_muldiv_1): Add VL_EXP_CLASS_P case.
15455         (fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
15456         (fold_unary): Likewise.
15457         (fold_binary): Likewise.
15458         (fold_ternary): Remove CALL_EXPR case, since they are no longer
15459         ternary expressions.
15460         (fold): Add logic for tcc_vl_exp.
15461         (fold_checksum_tree):  Make it know about tcc_vl_exp.  Use
15462         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
15463         (fold_build3_stat): Add assertion to flag broken interface for
15464         constructing CALL_EXPRs.
15465         (fold_build_call_list): New.
15466         (fold_build_call_list_initializer): New.
15467         (tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
15468         constructors.
15469         (fold_strip_sign_ops): Likewise.
15470
15471 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
15472             Brooks Moses  <brooks.moses@codesourcery.com>
15473             Lee Millward  <lee.millward@codesourcery.com>
15474
15475         * tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
15476         accessors and dump arguments explicitly.
15477
15478         * tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
15479         TREE_CODE_LENGTH.
15480         (dump_generic_node): Use new CALL_EXPR accessors and walk arguments
15481         explicitly.
15482         (print_call_name): Use new CALL_EXPR accessors.
15483
15484         * print-tree.c (print_node): Add case tcc_vl_exp.  Print
15485         CALL_EXPR arguments explicitly instead of as a list.  Use
15486         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
15487
15488         * tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
15489         (vrp_visit_stmt): Likewise.
15490
15491         * tree-ssa-loop-im.c (outermost_invariant_loop_expr):  Make it
15492         know about tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of
15493         TREE_CODE_LENGTH.
15494         (force_move_till_expr): Likewise.
15495
15496         * targhooks.c (default_external_stack_protect_fail): Use
15497         build_call_expr instead of build_function_call_expr.
15498         (default_hidden_stack_protect_fail): Likewise.
15499
15500         * tree-complex.c (expand_complex_libcall): Use build_call_expr to
15501         build the call.
15502
15503         * cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
15504         and walk arguments explicitly.
15505
15506         * tree-ssa-loop-niter.c (simplify_replace_tree): Use
15507         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
15508         (expand_simple_operations): Likewise.
15509         (infer_loop_bounds_from_array): Use new CALL_EXPR accessors.
15510
15511         * gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
15512         of TREE_CODE_LENGTH.
15513         (walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.
15514
15515         * optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
15516         instead of TREE_CODE_LENGTH.
15517
15518         * value_prof.c (tree_ic): Use new CALL_EXPR accessors.
15519         (tree_ic_transform): Likewise.
15520         (interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
15521         parameter instead of arglist.  Fix callers.
15522         (tree_stringop_fixed_value): Use new CALL_EXPR accessors.
15523         (tree_stringops_transform): Likewise.
15524         (tree_indirect_call_to_profile): Likewise.
15525         (tree_stringops_values_to_profile): Likewise.
15526
15527         * tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
15528         (eliminate_tail_call): Likewise.
15529
15530         * ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.
15531
15532         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
15533         Use TREE_OPERAND_LENGTH and generalize to handle any number of
15534         operands.
15535         (instantiate_parameters_1): Can't handle tcc_vl_exp here.
15536
15537         * omp-low.c (build_omp_barrier): Use build_call_expr.
15538         (lower_rec_input_clauses): Likewise.
15539         (lower_reduction_clauses): Likewise.
15540         (expand_parallel_call): Likewise.
15541         (maybe_catch_exception): Likewise.
15542         (expand_omp_for_generic): Likewise.
15543         (expand_omp_for_static_nochunk): Likewise.
15544         (expand_omp_sections): Likewise.
15545         (lower_omp_single_simple): Likewise.
15546         (lower_omp_single_copy): Likewise.
15547         (lower_omp_master): Likewise.
15548         (lower_omp_ordered): Likewise.
15549         (lower_omp_critical): Likewise.
15550
15551         * ipa-reference.c (check-call): Use new CALL_EXPR iterator.
15552         (scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.
15553
15554         * tree-gimple.c (is_gimple_call_addr): Fix doc.
15555         (recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
15556         TREE_CODE_LENGTH.  Add tcc_vl_exp case.
15557
15558         * tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
15559         and generalize to handle any number of operands.
15560         (chrec_contains_undetermined): Likewise.
15561         (tree_contains_chrecs): Likewise.
15562         (evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.
15563
15564         * cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.
15565
15566         * tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors.  Use
15567         fold_call_expr instead of fold_builtin.
15568         (ccp_fold_builtin): Likewise.  Update calls into builtins.c to
15569         match declarations there.
15570         (fold_stmt): Use new CALL_EXPR constructor and accessors.  Doc
15571         updates.
15572
15573         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
15574         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
15575
15576         * ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
15577         (scan_function): Add case tcc_vl_exp for CALL_EXPR.
15578
15579         * tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
15580         accessors.
15581
15582         * tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
15583         (execute_cse_sincos): Use new CALL_EXPR accessors.
15584
15585         * tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.
15586
15587         * gimple-low.c (lower_function_body): Use build_call_expr.
15588         (lower_builtin_setjmp): Likewise.
15589
15590         * expr.c (emit_block_move_via_libcall): Use build_call_expr.
15591         (set_storage_via_libcall): Likewise.
15592         (safe_from_p): Add tcc_vl_exp case.  Use TREE_OPERAND_LENGTH
15593         instead of TREE_CODE_LENGTH.
15594         (expand_expr_real_1): Use new CALL_EXPR accessors.
15595
15596         * tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
15597         generalize to handle any number of operands.
15598         (TB_parent_eq): Likewise.
15599
15600         * predict.c (expr_expected_value): Use new CALL_EXPR accessors.
15601         (strip_builtin_expect): Likewise.
15602
15603         * function.c (gimplify_parameters): Use build_call_expr.
15604
15605         * tree-vectorizer.c (vect_is_simple_reduction): Use
15606         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
15607
15608         * ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
15609         (scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
15610
15611         * tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
15612         iterators.
15613
15614         * gimplify.c (build_stack_save_restore): Use build_call_expr.
15615         (gimplify_decl_expr): Likewise.
15616         (gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
15617         Use new CALL_EXPR iterators.
15618         (gimplify_modify_expr_to_memcpy): Use build_call_expr.
15619         (gimplify_modify_expr_to_memset): Likewise.
15620         (gimplify_variable_sized_compare): Likewise.
15621         (gimplify_omp_atomic_fetch_op): Likewise.
15622         (gimplify_omp_atomic_pipeline): Likewise.
15623         (gimplify_omp_atomic_mutex): Likewise.
15624         (gimplify_function_tree): Likewise.
15625
15626         * calls.c (alloca_call_p): Use new CALL_EXPR accessors.
15627         (call_expr_flags): Likewise.
15628         (expand_call): Likewise.
15629
15630         * except.c (expand_builtin_eh_return_data_regno): Pass entire
15631         CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
15632         accessors.
15633
15634         * coverage.c (create_coverage): Use build_call_expr.
15635
15636         * tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
15637         (temp_call_expr_obstack): New.
15638         (pool_copy_list): Delete.
15639         (temp_copy_call_expr): New.
15640         (phi_translate): Add case tcc_vl_exp for CALL_EXPR.  Use new
15641         CALL_EXPR accessors.  Get rid of special goo for copying argument
15642         lists and use temp_copy_call_expr instead.
15643         (valid_in_sets): Add case tcc_vl_exp for CALL_EXPR.  Use new
15644         CALL_EXPR accessors.
15645         (create_expression_by_pieces): Likewise.  Use build_call_array
15646         to construct the result instead of fold_build3.
15647         (create_value_expr_from): Add tcc_vl_exp.  Delete special goo for
15648         dealing with argument lists.
15649         (init_pre): Remove references to expression_node_pool and
15650         list_node_pool.  Init temp_call_expr_obstack instead.
15651         (fini_pre): Remove references to expression_node_pool and
15652         list_node_pool.
15653
15654         * tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
15655         and walk arguments explicitly instead of as a list.
15656
15657         * tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
15658         (mx_register_decls): Likewise.
15659         (mudflap_register_call): Likewise.
15660         (mudflap_finish_file): Likewise.
15661
15662         * ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
15663         (ipa_callsite_compute_param): Likewise.
15664
15665         * tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
15666         accessors and constructor.
15667
15668         * tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
15669         accessors and constructor.
15670         (convert_tramp_reference): Likewise.
15671         (convert_call_expr): Likewise.
15672         (finalize_nesting_tree_1): Likewise.
15673
15674         * tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
15675         accessors.
15676
15677         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.
15678
15679         * tree-inline.c (initialize_inlined_parameters): Pass entire
15680         CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
15681         accessors.
15682         (estimate_num_insns_1): Use new CALL_EXPR accessors.
15683         (expand_call_inline): Tidy up call to initialize_inlined_parameters.
15684
15685         * tree-vect-transform.c (vect_create_epilog_for_reduction):  Use
15686         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
15687         (vectorizable_reduction): Likewise.
15688         (vectorizable_call): Use new CALL_EXPR iterators.
15689         (vectorizable_conversion): Use build_call_expr.
15690         (vectorizable_operation): Use TREE_OPERAND_LENGTH.
15691         (vect_gen_widened_results_half): Use build_call_expr.
15692         (vect_setup_realignment): Likewise.
15693         (vectorizable_live_operation): Use TREE_OPERAND_LENGTH.
15694
15695         * tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
15696         (pass_through_call): Likewise.
15697         (compute_object_sizes): Likewise.  Use fold_call_expr instead of
15698         fold_builtin.
15699
15700         * tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
15701         (tree_gen_pow2_profiler): Likewise.
15702         (tree_gen_one_value_profiler): Likewise.
15703         (tree_gen_ic_func_profiler): Likewise.
15704         (tree_gen_average_profiler): Likewise.
15705         (tree_gen_ior_profiler): Likewise.
15706
15707         * tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
15708         (find_func_aliases): Use new CALL_EXPR accessors.  Add case
15709         tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
15710
15711         * tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
15712         of TREE_CODE_LENGTH.
15713
15714         * stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
15715         of TREE_CODE_LENGTH.
15716
15717         * convert.c (convert_to_real): Use new CALL_EXPR accessors and
15718         constructor.
15719         (convert_to_integer): Likewise.
15720
15721         * tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
15722         accessors.
15723
15724 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
15725             Brooks Moses  <brooks.moses@codesourcery.com>
15726             Lee Millward  <lee.millward@codesourcery.com>
15727
15728         * config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
15729         accessors.
15730         * config/frv/frv.c (frv_expand_builtin): Likewise.
15731         * config/s390/s390.c (s390_expand_builtin): Likewise.
15732
15733         * config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
15734         (sparc_expand_builtin): Use new CALL_EXPR accessors.
15735
15736         * config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
15737         (ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
15738         instead of arglist.  Use new CALL_EXPR accessors on it.  Fix callers.
15739         (ix86_expand_store_builtin): Likewise.
15740         (ix86_expand_unop_builtin): Likewise.
15741         (ix86_expand_unop1_builtin): Likewise.
15742         (ix86_expand_sse_compare): Likewise.
15743         (ix86_expand_sse_comi): Likewise.
15744         (ix86_expand_vec_init_builtin): Likewise.
15745         (ix86_expand_vec_ext_builtin): Likewise.
15746         (ix86_expand_vec_set_builtin): Likewise.
15747         (ix86_expand_builtin): Use new CALL_EXPR accessors.
15748
15749         * config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
15750         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
15751
15752         * config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
15753         instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
15754         (iq2000_expand_builtin): Use new CALL_EXPR accessors.
15755
15756         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
15757         build_call_expr.
15758         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
15759         (rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
15760         arglist.  Use new CALL_EXPR accessors.  Fix callers.
15761         (altivec_expand_abs_builtin): Likewise.
15762         (rs6000_expand_binop_builtin): Likewise.
15763         (altivec_expand_predicate_builtin): Likewise.
15764         (altivec_expand_lv_builtin): Likewise.
15765         (spe_expand_stv_builtin): Likewise.
15766         (altivec_expand_stv_builtin): Likewise.
15767         (rs6000_expand_ternop_builtin): Likewise.
15768         (altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
15769         (altivec_expand_st_builtin): Likewise.
15770         (altivec_expand_dst_builtin): Likewise.
15771         (altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
15772         arglist.  Use new CALL_EXPR accessors.  Fix callers.
15773         (altivec_expand_vec_set_builtin): Likewise.
15774         (altivec_expand_vec_ext_builtin): Likewise.
15775         (altivec_expand_builtin): Use new CALL_EXPR accessors.
15776         (spe_expand_builtin): Likewise.
15777         (spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
15778         arglist.  Use new CALL_EXPR accessors.  Fix callers.
15779         (spe_expand_evsel_builtin): Likewise.
15780         (rs6000_expand_builtin): Use new CALL_EXPR accessors.  VCFUX and
15781         FCFSX cases must construct whole new CALL_EXPR, not just arglist.
15782
15783         * config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
15784         instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
15785         (arm_expand_unop_builtin): Likewise.
15786         (arm_expand_builtin): Use new CALL_EXPR accessors.
15787
15788         * config/mips/mips.c (mips_expand_builtin):  Use new CALL_EXPR
15789         accessors.
15790
15791         * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire
15792         CALL_EXPR instead of arglist.  Use new CALL_EXPR accessors.
15793         Fix callers.
15794         (bfin_expand_unop_builtin): Likewise.
15795         (bfin_expand_builtin): Use new CALL_EXPR accessors.
15796
15797 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
15798             Brooks Moses  <brooks.moses@codesourcery.com>
15799             Lee Millward  <lee.millward@codesourcery.com>
15800
15801         * c-semantics.c (build_stmt): Add internal diagnostic check.
15802
15803         * c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
15804         accessors.  Print arguments explicitly instead of as a list.
15805
15806         * c-typeck.c (build_function_call): Use new CALL_EXPR constructors.
15807
15808         * c-omp.c (c_finish_omp_barrier): Use build_call_expr.
15809         (c_finish_omp_flish): Likewise.
15810
15811         * c-common.c (verify_tree): Use new CALL_EXPR accessors.  Traverse
15812         arguments explicitly instead of as a list.  Use TREE_OPERAND_LENGTH
15813         instead of TREE_CODE_LENGTH.
15814         (check_function_arguments_recurse): Use new CALL_EXPR accessors.
15815         (c_warn_unused_result): Likewise.
15816
15817 2007-02-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15818
15819         PR c/26494
15820         * doc/invoke.texi (Warning Options): Remove
15821         -Werror-implicit-function-declaration.
15822         (Wimplicit-function-declaration): Update description.
15823         * opts.c (common_handle_option): Move handling of -Werror=* to...
15824         (enable_warning_as_error): ...here.
15825         * opts.h (enable_warning_as_error): Declare.
15826         * c-decl.c (implicit_decl_warning): Unless
15827         -Wno-implicit-function-declaration is given, emit a pedwarn if
15828         -std=c99 or emit a warning if -Wimplicit-function-declaration.
15829         * c.opt (Wimplicit-function-declaration): Replace
15830         mesg_implicit_function_declaration with
15831         warn_implicit_function_declaration.
15832         * c-opts.c (c_common_handle_option):
15833         -Werror-implicit-function-declaration is exactly equal as
15834         -Werror=implicit-function-declaration.
15835         (set_Wimplicit): Replace mesg_implicit_function_declaration with
15836         warn_implicit_function_declaration.
15837         (c_common_post_options): -Wimplict-function-declaration is enabled
15838         by default by -std=c99, otherwise is disabled by default.
15839         * c-objc-common.c (c_objc_common_init): Remove flawed logic.
15840
15841 2007-02-15  Eric Botcazou  <ebotcazou@adacore.com>
15842
15843         * gimplify.c (gimplify_modify_expr): During gimplification, attach a
15844         DECL on the rhs to a DECL on the lhs for debug info purposes if the
15845         former is ignored but not the latter.
15846
15847 2007-02-15  Eric Botcazou  <ebotcazou@adacore.com>
15848
15849         * expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary
15850         is made and the reference doesn't use the alias set of its type,
15851         do not create the temporary using that type.
15852
15853 2007-02-15  Aldy Hernandez  <aldyh@redhat.com>
15854
15855         * jump.c: Remove prototypes for delete_computation and
15856         delete_prior_computation.
15857
15858 2007-02-15  Paolo Bonzini  <bonzini@gnu.org>
15859
15860         * jump.c (get_label_after): Delete.
15861         (get_label_before, delete_computation, delete_jump,
15862         delete_prior_computation, follow_jumps): Move...
15863         * reorg.c (delete_computation, delete_prior_computation): ... here...
15864         (get_label_before, delete_jump): ... making these static ...
15865         (follow_jumps): ... and simplifying this since it only runs after
15866         reload.
15867         * rtl.h (get_label_after, get_label_before, delete_jump,
15868         follow_jumps): Delete prototypes.
15869
15870 2007-02-15  Paolo Bonzini  <bonzini@gnu.org>
15871
15872         * caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
15873
15874 2007-02-15  Nick Clifton  <nickc@redhat.com>
15875
15876         * varasm.c (default_asm_output_anchor): Prepend * to . symbol in
15877         order to prevent it from being munged by the target.
15878
15879 2007-02-15  Uros Bizjak  <ubizjak@gmail.com>
15880
15881         * config/i386/i386.md: Remove misleading comment.
15882
15883 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
15884
15885         * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
15886         reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
15887         invalid patterns.
15888
15889 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
15890
15891         * tree-sra.c (instantiate_missing_elements): Canonicalize
15892         bit-field types.
15893         (sra_build_assignment): New.
15894         (generate_copy_inout, generate_element_copy,
15895         generate_element_zero, generate_one_element_init): Use it.
15896
15897 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
15898
15899         * tree-sra.c (instantiate_missing_elements): Canonicalize
15900         bit-field types.
15901         (sra_build_assignment): New.
15902         (generate_copy_inout, generate_element_copy,
15903         generate_element_zero, generate_one_element_init): Use it.
15904
15905 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
15906
15907         * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
15908         limbo die nodes.
15909
15910 2007-02-14  Joseph Myers  <joseph@codesourcery.com>
15911
15912         * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
15913         types as aggregates not scalars.
15914         * function.c (assign_stack_temp_for_type): Likewise.
15915
15916 2007-02-14  Roger Sayle  <roger@eyesopen.com>
15917             Zdenek Dvorak  <dvorakz@suse.cz>
15918
15919         * tree-dump.c (dump_switch_p_1): Require exact match of the option
15920         name.
15921
15922 2007-02-14  Zdenek Dvorak  <dvorakz@suse.cz>
15923
15924         * passes.c (next_pass_1): Clear the next field of the copied
15925         pass structure.
15926
15927 2007-02-14  Richard Henderson  <rth@redhat.com>
15928
15929         * tree-sra.c (early_sra): New.
15930         (decl_can_be_decomposed_p): Deny va_list if early_sra.
15931         (tree_sra_early, pass_sra_early): New.
15932         * tree-pass.h (pass_sra_early): Declare.
15933         * passes.c (init_optimization_passes): Use it.
15934
15935 2007-02-14  Richard Guenther  <rguenther@suse.de>
15936
15937         * flags.h (issue_strict_overflow_warning): Convert to a macro.
15938
15939 2007-02-14  Dorit Nuzman  <dorit@il.ibm.com>
15940
15941          PR tree-optimization/30771
15942         * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
15943         also phi nodes.
15944         (vect_analyze_operations): Induction phis can now be marked as
15945         used_in_loop.
15946         (vect_mark_stmts_to_be_vectorized): No special treatment for phis.
15947         Update documentation accordingly.
15948
15949 2007-02-14  Nick Clifton  <nickc@redhat.com>
15950
15951         * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at
15952         most 3 arguments are supported.
15953         (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.
15954
15955 2007-02-13  Seongbae Park <seongbae.park@gmail.com>
15956
15957         * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
15958         Ensure dst->current is valid.
15959
15960 2007-02-13  Paul Brook  <paul@codesourcery.com>
15961
15962         * config.gcc: Add arm*-*-uclinux-*eabi.
15963         * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
15964         (SUBTARGET_EXTRA_LINK_SPEC): Define.
15965         (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
15966         (LINK_GCC_C_SEQUENCE_SPEC): Undef.
15967         (LINK_SPEC): Define.
15968         (LIB_SPEC): Define.
15969         * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
15970         register.
15971         * config/arm/uclinux-eabi.h: New file.
15972         * config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
15973         * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
15974         based targets.
15975
15976 2007-02-13  Ian Lance Taylor  <iant@google.com>
15977
15978         * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
15979         * flags.h (warn_strict_overflow): Declare.
15980         (enum warn_strict_overflow_code): Define.
15981         (issue_strict_overflow_warning): New static inline function.
15982         * opts.c (warn_strict_overflow): New variable.
15983         (common_handle_option): Handle OPT_Wstrict_overflow and
15984         OPT_Wstrict_overflow_.
15985         * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
15986         OPT_Wall.
15987         * fold-const.c: Include intl.h.
15988         (fold_deferring_overflow_warnings): New static variable.
15989         (fold_deferred_overflow_warning): New static variable.
15990         (fold_deferred_overflow_code): New static variable.
15991         (fold_defer_overflow_warnings): New function.
15992         (fold_undefer_overflow_warnings): New function.
15993         (fold_undefer_and_ignore_overflow_warnings): New function.
15994         (fold_deferring_overflow_warnings_p): New function.
15995         (fold_overflow_warning): New static function.
15996         (make_range): Add strict_overflow_p parameter.  Change all
15997         callers.
15998         (extract_muldiv, extract_muldiv_1): Likewise.
15999         (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
16000         tree_expr_nonnegative_p.
16001         (fold_negate_expr): Call fold_overflow_warning.
16002         (fold_range_test): Likewise.
16003         (fold_comparison): Likewise.
16004         (fold_binary): Likewise.  Call tree_expr_nonnegative_warnv_p
16005         instead of tree_expr_nonnegative_p.
16006         (tree_expr_nonnegative_warnv_p): Rename from
16007         tree_expr_nonnegative_p, add strict_overflow_p parameter.
16008         (tree_expr_nonnegative_p): New function.
16009         (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
16010         strict_overflow_p parameter.
16011         (tree_expr_nonzero_p): New function.
16012         * passes.c (verify_interpass_invariants): New static function.
16013         (execute_one_pass): Call it.
16014         * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
16015         warnings.
16016         (number_of_iterations_exit, loop_niter_by_eval): Likewise.
16017         (estimate_numbers_of_iterations): Likewise.
16018         (scev_probably_wraps_p): Likewise.
16019         * tree-ssa-ccp.c: Include "toplev.h".
16020         (evaluate_stmt): Defer fold overflow warnings until we know we are
16021         going to optimize.
16022         (struct fold_stmt_r_data): Add stmt field.
16023         (fold_stmt_r): Defer fold overflow warnings until we know we
16024         optimized.
16025         (fold_stmt): Initialize stmt field of fold_stmt_r_data.
16026         (fold_stmt_inplace): Likewise.
16027         * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
16028         (cleanup_control_expr_graph): Defer fold overflow warnings until
16029         we know we are going to optimize.
16030         * tree-cfg.c (fold_cond_expr_cond): Likewise.
16031         * tree-ssa-threadedge.c (simplify_control_stmt_condition):
16032         Likewise.
16033         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
16034         tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
16035         * tree-ssa-loop-manip.c (create_iv): Likewise.
16036         * c-typeck.c (build_conditional_expr): Likewise.
16037         (build_binary_op): Likewise.
16038         * tree-vrp.c (vrp_expr_computes_nonzero): Call
16039         tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
16040         (extract_range_from_unary_expr): Likewise.
16041         * simplify-rtx.c (simplify_const_relational_operation): Warn when
16042         assuming that signed overflow does not occur.
16043         * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
16044         * tree.h (tree_expr_nonnegative_warnv_p): Declare.
16045         (fold_defer_overflow_warnings): Declare.
16046         (fold_undefer_overflow_warnings): Declare.
16047         (fold_undefer_and_ignore_overflow_warnings): Declare.
16048         (fold_deferring_overflow_warnings_p): Declare.
16049         (tree_expr_nonzero_warnv_p): Declare.
16050         * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
16051         of warning options.
16052         (Warning Options): Document -Wstrict-overflow.
16053         * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
16054         (tree-ssa-ccp.o): Likewise.
16055         (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
16056         (fold-const.o): Depend on intl.h.
16057
16058 2007-02-13  Ian Lance Taylor  <iant@google.com>
16059
16060         PR middle-end/30751
16061         * lower-subreg.c (resolve_simple_move): Decompose subregs in
16062         addresses.
16063
16064 2007-02-13  Stuart Hastings  <stuart@apple.com>
16065
16066         * config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
16067
16068 2007-02-13  Richard Henderson  <rth@redhat.com>
16069
16070         * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
16071         handled_component_p before looking for the indirect_ref.
16072
16073 2007-02-13  Richard Henderson  <rth@redhat.com>
16074
16075         * config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
16076         remove flags clobber.
16077         (bswapsi2): New expander, emit code for !TARGET_BSWAP.
16078         (bswaphi_lowpart): New.
16079         (bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
16080         remove TARGET_BSWAP test.  Delete expander of the same name.
16081
16082         * optabs.c (widen_bswap, expand_doubleword_bswap): New.
16083         (expand_unop): Use them.
16084
16085 2007-02-13  Uros Bizjak  <ubizjak@gmail.com>
16086
16087         * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
16088         *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
16089         *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
16090         *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
16091         *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
16092         *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
16093         *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
16094         assembler dialect choice from asm templates.
16095
16096 2007-02-12  Richard Henderson  <rth@redhat.com>
16097
16098         * config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
16099         (fixuns_trunc<SSEMODEF>si2): Use it.
16100         * config/i386/sse.md (vec_setv4sf_0): Export.
16101         * config/i386/i386.c (ix86_build_const_vector): Export.
16102         (ix86_split_convert_uns_si_sse): Rename from
16103         ix86_expand_convert_uns_si_sse and rewrite as a splitter.
16104         * config/i386/i386-protos.h: Update.
16105
16106 2007-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16107
16108         PR c/29521
16109         * c-typeck.c (c_finish_return): Improve warning message.
16110
16111 2007-02-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16112
16113         * alias.c (find_symbolic_term): Delete unused function.
16114
16115 2007-02-12  Uros Bizjak  <ubizjak@gmail.com>
16116
16117         * config/i386/i386.md (paritydi2, paritysi2): New expanders.
16118         (paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
16119         (*parityhi2_cmp, *parityqi2_cmp): New insn patterns.
16120
16121 2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
16122
16123         * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
16124         * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
16125         the function, temporarily point the debug interface to the null one.
16126
16127 2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
16128
16129         * dwarf2out.c (round_up_to_align): New static function.
16130         (field_byte_offset): Use it to round the offset.
16131
16132 2007-02-12  Richard Henderson  <rth@redhat.com>
16133
16134         * config/alpha/alpha.md (bswapsi2, bswapdi2): New.
16135         (inswl_const): Export.
16136
16137 2007-02-12  Richard Henderson  <rth@redhat.com>
16138
16139         * calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
16140         result mode of the libcall, convert back to outmode.
16141
16142 2007-02-12  Roger Sayle  <roger@eyesopen.com>
16143
16144         * config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
16145         (bswapdi2): New define_expand to implement 32-bit implementation.
16146
16147 2007-02-12  Nick Clifton  <nickc@redhat.com>
16148
16149         * doc/invoke.texi (Overall Options): Document --help=.
16150         * gcc.c (target_help_flag): Rename to print_subprocess_flag.
16151         (cc1_options): Pass --help= on to cc1.
16152         (display_help): Add description of --help=.
16153         (process_command): Add code to handle --help=.  Allow translated
16154         --help and --target-help switches to be passed on to compiler
16155         sub-process.
16156         (main): Remove unused if statement.
16157         * opts.c (columns): Remove.
16158         (LEFT_COLUMN): Define.
16159         (wrap_help): Add columns argument.
16160         (print_filtered_help): Change parameters to be an include bitmask,
16161         an exclude bitmask, an any bitmask and the column width.  Move the
16162         code to display the params list here.  Add code to display the
16163         status of options rather than their descriptions if the quiet flag
16164         is not active.
16165         (print_specific_help): Change parameters to be an include bitmask,
16166         an exclude bitmask and an any bitmask.  Move code to look up the
16167         column width here.  Decide upon the title for an options listing.
16168         (common_handle_options): Add code to handle --help=.  Adapt code
16169         for --help and --target-help to use the revised form of the
16170         print_specific_help function.
16171         (print_help): Delete.
16172         (print_param_help): Delete.
16173         (print_switch): Delete.
16174         * opts.h (cl_lang_count): Add prototype.
16175         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS,
16176         CL_MAX_OPTION_CLASS): New defines.
16177         * optc-gen.awk: Add construction of cl_lang_count.
16178         * c.opt: Add Warning attribute to warning options and Optimization
16179         attribute to optimization options.
16180         * common.opt: Likewise.
16181         Add --help=.
16182         Add -fhelp and -ftarget-help as aliases for the transformed --help
16183         and --target-help options.
16184         * opt-functions.awk: Add code to handle Warning and Optimization
16185         attributes.
16186
16187 2007-02-12  Richard Henderson  <rth@redhat.com>
16188
16189         * config/alpha/constraints.md: New file.
16190         * config/alpha/alpha.c: Include tm-constrs.h.
16191         (alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p,
16192         alpha_extra_constraint): Remove.
16193         (alpha_emit_conditional_branch): Use satisfies_constraint_*.
16194         * config/alpha/alpha-protos.h: Update.
16195         * config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove.
16196         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove.
16197         (EXTRA_CONSTRAINT): Remove.
16198         * config/alpha/alpha.md: Include constraints.md.
16199         (adddi splitter): Use satisfies_constraint_*.
16200         * config/alpha/predicates.md (add_operand): Likewise.
16201         (sext_add_operand, addition_operation): Likewise.
16202
16203 2007-02-12  Dorit Nuzman  <dorit@il.ibm.com>
16204
16205         PR tree-optimization/29145
16206         * tree-data-ref.c (base_addr_differ_p): Make us more conservative
16207         in our handling of restrict qualified pointers.
16208
16209 2007-02-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16210
16211         PR middle-end/7651
16212         * doc/invoke.texi (Wunused-value): Update description.
16213         (Wextra): Delete item.
16214         * opts.c (set_Wextra): Don't use the value of Wextra to set the
16215         value of Wunused-value.
16216         * c-typeck.c (c_process_expr_stmt): Don't check extra_warnings.
16217         (c_finish_stmt_expr): Don't check extra_warnings.
16218         (emit_side_effect_warnings): The caller is responsible to check
16219         warn_unused_value.
16220
16221 2007-02-11  Roger Sayle  <roger@eyesopen.com>
16222             Matt Thomas  <matt@3am-software.com>
16223
16224         * simplify-rtx.c (simplify_relational_operation_1): Correct typo.
16225
16226 2007-02-11  Roger Sayle  <roger@eyesopen.com>
16227
16228         * simplify-rtx.c (simplify_relational_operation_1): Optimize
16229         comparisons of POPCOUNT against zero.
16230         (simplify_const_relational_operation): Likewise.
16231
16232 2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16233
16234         * doc/invoke.texi (Wextra): Delete outdated paragraph.
16235
16236 2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16237
16238         * dwarf2out.c (root_type): Delete unused function.
16239
16240 2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16241
16242         * genattrtab.c (contained_in_p): Delete unused function.
16243         (write_expr_attr_cache): Likewise.
16244
16245 2007-02-11  Jan Hubicka  <jh@suse.cz>
16246
16247         * ipa-inline.c (cgraph_edge_badness): Add "else" missing in the
16248         previous patch.
16249
16250 2007-02-11  Steven Bosscher  <steven@gcc.gnu.org>
16251
16252         * fwprop.c (try_fwprop_subst): Use set_unique_reg_note
16253         to add the REG_EQ* note.
16254         * see.c (see_merge_one_use_extension): Likewise.
16255         * local-alloc.c (update_equiv_regs): Likewise.  Also don't
16256         turn REG_EQUAL notes into REG_EQUIV notes if the target
16257         register may have more than one set.
16258         * function.c (assign_parm_setup_reg): Use set_unique_reg_note.
16259         * gcse.c (try_replace_reg): Likewise.
16260         * alias.c (init_alias_analysis): Use find_reg_equal_equiv_note.
16261         * calls.c (fixup_tail_calls): Likewise.  Abort if there is
16262         more than one REG_EQUIV note.
16263         * reload1.c (gen_reload): Use set_unique_reg_note.
16264
16265 2007-02-11  Uros Bizjak  <ubizjak@gmail.com>
16266
16267         * config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
16268         (ix86_builtin_conversion): New function.
16269
16270 2007-02-06  Mark Mitchell  <mark@codesourcery.com>
16271
16272         PR target/29487
16273         * tree.h (DECL_REPLACEABLE_P): New macro.
16274         * except.c (set_nothrow_function_flags): Likewise.
16275
16276 2007-02-11  Tehila Meyzels  <tehila@il.ibm.com>
16277             Ira Rosen  <irar@il.ibm.com>
16278             Dorit Nuzman  <dorit@il.ibm.com>
16279
16280         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
16281         * targhooks.c (default_builtin_vectorized_conversion): New.
16282         * targhooks.h (default_builtin_vectorized_function): New declaration.
16283         * target.h (struct vectorize): Add builtin_conversion field.
16284         * tree-vectorizer.h (type_conversion_vec_info_type): New enum
16285         stmt_vec_info_type value.
16286         (vectorizable_conversion): New declaration.
16287         * tree-vect-analyze.c (vect_analyze_operations): Add
16288         vectorizable_conversion call.
16289         * target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New.
16290         * tree-vect-transform.c (vectorizable_conversion): New function.
16291         (vect_transform_stmt): Add case for type_conversion_vec_info_type.
16292         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
16293         mode.
16294         * config/rs6000/rs6000.c (rs6000_builtin_conversion): New.
16295         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined.
16296         (rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX
16297         or ALTIVEC_BUILTIN_VCFSX.
16298
16299 2007-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16300
16301         PR target/30634
16302         * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
16303         CONST_DOUBLE and operand 0 is a hard register.
16304         (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
16305         memory.  Fail if operand 1 is a non-zero CONST_INT and operand 0
16306         is a hard floating-point register.
16307
16308 2007-02-10  Richard Henderson  <rth@redhat.com>
16309             Jakub Jelinek  <jakub@redhat.com>
16310             Alexandre Oliva  <aoliva@redhat.com>
16311
16312         * Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c.
16313         * builtin-types.def (BT_WORD): Make unsigned.
16314         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
16315         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
16316         (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
16317         * c-decl.c (grokdeclarator): Don't error if !have_tls.
16318         * c-parser.c (c_parser_omp_threadprivate): Likewise.
16319         * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
16320         emulated tls.
16321         * expr.c (emutls_var_address): New.
16322         (expand_expr_real_1): Expand emulated tls.
16323         (expand_expr_addr_expr_1): Likewise.
16324         * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
16325         * output.h (emutls_finish): Declare.
16326         * toplev.c (compile_file): Call it.
16327         * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
16328         address before wrapping in CONST.
16329         * varasm.c (emutls_htab, emutls_object_type): New.
16330         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
16331         (get_emutls_object_name, get_emutls_object_type): New.
16332         (get_emutls_init_templ_addr, emutls_decl): New.
16333         (emutls_common_1, emutls_finish): New.
16334         (assemble_variable): When emulating tls, swap decls; generate
16335         constructor for the emutls objects.
16336         (do_assemble_alias): When emulating tls, swap decl and target name.
16337         (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
16338         for emulated tls.
16339         * varpool.c (decide_is_variable_needed): Look at force_output.
16340         Recurse for emulated tls.
16341         (cgraph_varpool_remove_unreferenced_decls): Remove checks redundant
16342         with decide_is_variable_needed.
16343         * emutls.c: New file.
16344         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
16345         tls_object for real tls.
16346
16347 2007-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
16348
16349         PR rtl-optimization/29599
16350         * reload1.c (eliminate_regs_in_insn): Take the destination
16351         mode into account when computing the offset.
16352
16353 2007-02-09  Stuart Hastings  <stuart@apple.com>
16354             Richard Henderson  <rth@redhat.com>
16355
16356         * config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
16357         * config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
16358         * config/i386/i386.md (fixuns_trunc<mode>si2, fixuns_truncsfhi2,
16359         fixuns_truncdfhi2): New.
16360         (fix_truncsfdi_sse): Call ix86_expand_convert_sign_didf_sse.
16361         (floatunsdidf2): Call ix86_expand_convert_uns_didf_sse.
16362         (floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse.
16363         (floatunssidf2): Allow nonimmediate source.
16364         * config/i386/sse.md (movdi_to_sse): New.
16365         (vec_concatv2di): Drop '*'.
16366         * config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse,
16367         ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
16368         ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse):
16369         New.
16370         * config/i386/i386.c (ix86_expand_convert_uns_si_sse,
16371         ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
16372         ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse,
16373         ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New.
16374         (ix86_build_signbit_mask): Fix decl of v, refactor to call
16375         ix86_build_const_vector.
16376         (x86_emit_floatuns): Rewrite.
16377
16378 2007-02-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16379
16380         * genautomata.c (longest_path_length): Delete unused function.
16381         (struct state): Delete unused longest_path_length.
16382         (UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro.
16383         (get_free_state): Delete unused.
16384
16385 2007-02-09  Jan Hubicka  <jh@suse.cz>
16386
16387         * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
16388         * doc/invoke.texi (inline-unit-growth): Update default value.
16389
16390         * Makefile.in (passes.o, ipa-inline.o): Add dependencies.
16391         * cgraphbuild.c (build_cgraph_edges): Compute frequencies.
16392         (rebuild_cgraph_edges): Likewise.
16393         * cgraph.c (cgraph_set_call_stmt): Add new argument frequency.
16394         (dump_cgraph_node): Dump frequencies.
16395         (cgraph_clone_edge): Add frequency scales.
16396         (cgraph_clone_node): Add freuqnecy.
16397         * cgraph.h (cgraph_edge): Add freuqnecy argument.
16398         (CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants.
16399         (cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update.
16400         * tree-pass.h (TODO_rebuild_frequencies): New constant.
16401         * cgraphunit.c (verify_cgraph_node): Verify frequencies.
16402         (cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge.
16403         (save_inline_function_body): Likewise.
16404         * ipa-inline.c: inluce rtl.h
16405         (cgraph_clone_inlined_nods): Update call of cgraph_clone_node.
16406         (cgraph_edge_badness): Use frequencies.
16407         (cgraph_decide_recursive_inlining): Update clonning.
16408         (cgraph_decide_inlining_of_small_function): Dump frequency.
16409         * predict.c (estimate_bb_frequencies): Export.
16410         * predict.h (estimate_bb_frequencies): Declare.
16411         * tree-inline.c (copy_bb): Watch overflows.
16412         (expand_call_inline): Update call of cgraph_create_edge.
16413         (optimize_inline_calls): Use TODO flags to update frequnecies.
16414         * passes.h: Include predict.h
16415         (init_optimization_passes): Move profile ahead.
16416         (execute_function_todo): Handle TODO_rebuild_frequencies.
16417
16418 2007-02-09  Roger Sayle  <roger@eyesopen.com>
16419
16420         * config/alpha/alpha.c (emit_insxl): Force the first operand of
16421         the insbl or inswl pattern into a register.
16422
16423 2007-02-09  Roger Sayle  <roger@eyesopen.com>
16424
16425         * config/ia64/ia64.md (bswapdi2): New define_insn.
16426
16427 2007-02-09  Richard Henderson  <rth@redhat.com>
16428
16429         * config/i386/constraints.md (Ym): New constraint.
16430         * config/i386/i386.md (movsi_1): Change Y2 to Yi constraints.
16431         (movdi_1_rex64): Split sse and xmm general register moves from
16432         memory move alternatives.  Use conditional register constraints.
16433         (movsf_1, movdf_integer): Likewise.
16434         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
16435         (movdf_integer_rex64): New.
16436         (pushsf_rex64): Fix output constraints.
16437         * config/i386/sse.md (sse2_loadld): Split rm alternative, use Yi.
16438         (sse2_stored): Likewise.
16439         (sse2_storeq_rex64): New.
16440         * config/i386/i386.c (x86_inter_unit_moves): Enable for not
16441         amd and not generic.
16442         (ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES
16443         for optimize_size.  Remove SF/DFmode hack.
16444
16445 2007-02-09  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
16446
16447         * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
16448         (bit_SSE4a): New.
16449
16450 2007-02-09  Nathan Sidwell  <nathan@codesourcery.com>
16451             Richard Sandiford  <richard@codesourcery.com>
16452
16453         * config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*)
16454         (m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu.
16455         (m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add
16456         m68k/t-mlib to tmake_file.
16457         (m68020-*-elf*, m68k-*-elf*): Likewise.  Add t-m68kbare as well.
16458         (m68k*-*-*): Use --with-arch to pick a default for --with-cpu.
16459         (m680[012]0-*-*, m68k*-*-*): Add support for --with-arch.
16460         Allow it to be cf or m68k.  Set m68k_arch_family.  If that
16461         variable is not empty, add t-$m68k_arch_family to tmake_file.
16462         Add t-mlibs to tmake_file.
16463         * doc/install.texi: Document --with-arch=m68k and --with-arch=cf.
16464         * config/m68k/t-cf: New file.
16465         * config/m68k/t-m68k: Likewise.
16466         * config/m68k/t-mlibs: Likewise.
16467         * config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
16468         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
16469         (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
16470         * config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
16471         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC):
16472         Delete.
16473         * config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete.
16474         (INSTALL_LIBGCC): Delete.
16475         (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
16476         * config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
16477         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
16478         (M68K_MLIB_CPU): Define.
16479         * config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
16480         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
16481         (M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define.
16482
16483 2007-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
16484             Richard Guenther  <rguenther@suse.de>
16485
16486         PR middle-end/23361
16487         * fold-const.c (fold_comparison): Handle obfuscated comparisons
16488         against INT_MIN/INT_MAX.
16489         * tree-ssa-loop-ivcanon.c (remove_empty_loop): Print to dump
16490         file if a loop is removed.
16491
16492 2007-02-09  Joseph Myers  <joseph@codesourcery.com>
16493
16494         * calls.c (store_one_arg): Pass correct alignment to
16495         emit_push_insn for non-BLKmode values.
16496         * expr.c (emit_push_insn): If STRICT_ALIGNMENT, copy to an
16497         unaligned stack slot via a suitably aligned slot.
16498
16499 2007-02-08  DJ Delorie  <dj@redhat.com>
16500
16501         * config/m32c/m32c.c (m32c_unpend_compare): Add default to silence
16502         warnings.
16503         (legal_subregs): Use unsigned char, make const.
16504         (m32c_illegal_subreg_p): Use ARRAY_SIZE.  Delete unused variables.
16505
16506 2007-02-08  Paul Brook  <paul@codesourcery.com>
16507
16508         * config/arm/lib1funcs.asm (RETLDM): Pop directly into PC when no
16509         special interworking needed.
16510
16511 2007-02-08  Harsha Jagasia  <harsha.jagasia@amd.com>
16512
16513         * config/i386/xmmintrin.h: Make inclusion of emmintrin.h
16514         conditional to __SSE2__.
16515         (Entries below should have been added to first ChangeLog
16516         entry for amdfam10 dated 2007-02-05)
16517         * config/i386/emmintrin.h: Generate #error if __SSE2__ is not
16518         defined.
16519         * config/i386/pmmintrin.h: Generate #error if __SSE3__ is not
16520         defined.
16521         * config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not
16522         defined.
16523
16524 2007-02-08  DJ Delorie  <dj@redhat.com>
16525
16526         * config/m32c/m32c-protos.h (m32c_illegal_subreg_p): New.
16527         * config/m32c/m32c.c (legal_subregs): New.
16528         (m32c_illegal_subreg_p): New.
16529         * config/m32c/predicates.md (m32c_any_operand): Use it to reject
16530         unsupported subregs of hard regs.
16531
16532 2007-02-08  Jan Hubicka  <jh@suse.cz>
16533
16534         * tree-cfg.c (bsi_replace): Shortcut when replacing the statement with
16535         the same one; always update histograms.
16536
16537 2007-02-08  Diego Novillo  <dnovillo@redhat.com>
16538
16539         * passes.c (init_optimization_passes): Tidy comment.
16540
16541 2007-02-08  Roger Sayle  <roger@eyesopen.com>
16542
16543         * simplify-rtx.c (simplify_unary_operation_1) <POPCOUNT>: We can
16544         strip zero_extend, bswap and rotates from POCOUNT's argument.
16545         <PARITY>: Likewise, we can strip not, bswap, sign_extend,
16546         zero_extend and rotates from PARITY's argument.
16547         <BSWAP>: A byte-swap followed by a byte-swap is an identity.
16548         (simplify_const_unary_operation) <BSWAP>: Evaluate the byte-swap
16549         of an integer constant at compile-time.
16550
16551 2007-02-08  Diego Novillo  <dnovillo@redhat.com>
16552
16553         PR 30562
16554         * tree-flow.h (struct var_ann_d): Remove field 'is_used'.
16555         Update all users.
16556         * tree-ssa-alias.c (compute_is_aliased): Remove.  Update all
16557         users.
16558         (init_alias_info):
16559         * tree-ssa-live.c (remove_unused_locals): Do not remove
16560         TREE_ADDRESSABLE variables.
16561         * tree-ssa-structalias.c (compute_points_to_sets): Tidy.
16562         * tree-ssa-operands.c (add_virtual_operand): Remove argument
16563         FOR_CLOBBER.  Update all users.
16564         If VAR has an associated alias set, add a virtual operand for
16565         it if no alias is found to conflict with the memory reference.
16566
16567 2007-02-07  Jan Hubicka  <jh@suse.cz>
16568             Robert Kidd <rkidd@crhc.uiuc.edu>
16569
16570         * value-prof.c (visit_hist, free_hist): Return 1 instead of 0.
16571
16572 2007-02-07  Ian Lance Taylor  <iant@google.com>
16573
16574         * lower-subreg.c (simple_move): Reject PARTIAL_INT modes.
16575
16576 2007-02-07  Roger Sayle  <roger@eyesopen.com>
16577
16578         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
16579         parity<mode>2, smulsi3_highpart, abstf2_internal, allocate_stack,
16580         tablejumpdi, movsi_to_cr_one): Remove constraints from
16581         define_expand's match_operands.
16582
16583 2007-02-07  Roger Sayle  <roger@eyesopen.com>
16584
16585         * global.c (compute_regsets): Move declatation of "i" inside of
16586         #ifdef ELIMINABLE_REGS to avoid unused variable bootstrap failure.
16587
16588 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
16589
16590         PR c++/30703
16591         * gimplify.c (gimplify_scan_omp_clauses): Remove special casing
16592         of INDIRECT_REF <RESULT_DECL>.
16593
16594         * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2.
16595
16596 2007-02-06  J"orn Rennecke  <joern.rennecke@arc.com>
16597             Kaz Kojima  <kkojima@gcc.gnu.org>
16598
16599         PR target/29746
16600         * config/sh/sh.c (expand_cbranchdi4): Use scratch register
16601         properly.
16602         (sh_initialize_trampoline): Add parentheses to avoid a warning.
16603
16604 2007-02-06  Zdenek Dvorak <dvorakz@suse.cz>
16605
16606         * doc/loop.texi: Document possibility not to perform disambiguation
16607         of loops with multiple latches.
16608         * cfgloopmanip.c (alp_enum_p): Removed.
16609         (add_loop): Handle subloops.  Use get_loop_body_with_size.
16610         (create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader.
16611         * cfghooks.c (redirect_edge_and_branch_force): Set dominator for
16612         the new forwarder block.
16613         (make_forwarder_block): Only call new_bb_cbk if it is not NULL.
16614         Handle the case latch is NULL.
16615         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg
16616         modifications when marking loop exits.
16617         * ifcvt.c (if_convert): Ditto.  Mark loop exits even if cfg cannot
16618         be modified.
16619         * loop-init.c (loop_optimizer_init): Do not modify cfg.  Call
16620         disambiguate_loops_with_multiple_latches.
16621         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators
16622         before fix_loop_structure.
16623         * cfgloop.c: Include pointer-set.h and output.h.
16624         (canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE,
16625         update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed.
16626         (get_loop_latch_edges, find_subloop_latch_edge_by_profile,
16627         find_subloop_latch_edge_by_ivs, find_subloop_latch_edge,
16628         mfb_redirect_edges_in_set, form_subloop, merge_latch_edges,
16629         disambiguate_multiple_latches, get_loop_body_with_size,
16630         disambiguate_loops_with_multiple_latches): New functions.
16631         (flow_loop_dump): Dump multiple latch edges.
16632         (flow_loop_nodes_find): Handle loops with multiple latches.
16633         (flow_loops_find): Ditto. Do not call canonicalize_loop_headers.
16634         (glb_enum_p): Modified.
16635         (get_loop_body): Use get_loop_body_with_size.
16636         * cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag.
16637         (AVOID_CFG_MODIFICATIONS): New constant.
16638         (disambiguate_loops_with_multiple_latches, add_loop,
16639         get_loop_body_with_size): Declare.
16640         * Makefile.in (cfgloop.o): Add pointer-set.h and output.h.
16641
16642 2007-02-06  Seongbae Park <seongbae.park@gmail.com>
16643
16644         PR inline-asm/28686
16645         * global.c (compute_regsets): New function.
16646         (global_alloc): Refactored ELIMINABLE_REGSET
16647         and NO_GLOBAL_ALLOC_REGS computation out.
16648         (rest_of_handle_global_alloc): Call compute_regsets()
16649         for non-optimizing case.
16650
16651 2007-02-06  Richard Henderson  <rth@redhat.com>
16652
16653         * config/i386/constraints.md (Y2): Rename from Y.
16654         (Yi): New constraint.
16655         * config/i386/i386.md (movsi_1, movdi_2, pushdf_nointeger,
16656         pushdf_integer, movdf_nointeger, movdf_integer, zero_extendsidi2_32,
16657         zero_extendsidi2_rex64, truncxfdf2_mixed): Change Y constraints to Y2.
16658         (extendsfdf2_mixed, extendsfdf2_sse, truncdfsf_fast_mixed,
16659         truncdfsf_fast_sse, truncdfsf_mixed, fix_truncdfdi_sse,
16660         fix_truncdfsi_sse, floatsidf2_mixed, floatsidf2_sse,
16661         floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed,
16662         absnegdf2_sse, sse_setccdf, fop_df_comm_mixed, fop_df_comm_sse,
16663         fop_df_1_mixed, fop_df_1_sse): Change Y constraints to x.
16664         * config/i386/mmx.md (mov<MMXMODEI>_internal_rex64,
16665         mov<MMXMODEI>_internal, movv2sf_internal_rex64, movv2sf_internal,
16666         vec_extractv2si_1): Change Y constraints to Y2.
16667         * config/i386/sse.md (vec_setv4sf_0, vec_concatv2df, vec_dupv4si,
16668         vec_dupv2di, sse2_concatv2si, vec_concatv4si_1, vec_concatv2di):
16669         Change Y constraints to Y2.
16670         (sse2_loadld): Change Y constraints to x.
16671
16672 2007-02-06  Roger Sayle  <roger@eyesopen.com>
16673
16674         * config/rs6000/rs6000.md (popcount<mode>2): Rewrite.
16675         (parity<mode>2): New define_expand using rs6000_emit_parity.
16676         * config/rs6000/rs6000.c (rs6000_emit_popcount,
16677         rs6000_emit_parity): New functions.
16678         * config/rs6000/rs6000-protos.h (rs6000_emit_popcount,
16679         rs6000_emit_parity): Prototype here.
16680
16681 2007-02-06  Ian Lance Taylor  <iant@google.com>
16682
16683         * lower-subreg.c (simple_move_operand): Reject CONST.
16684         (resolve_clobber): Call validate_change rather than directly
16685         assigning to XEXP (pat, 0).
16686
16687 2006-02-06  Paolo Bonzini  <bonzini@gnu.org>
16688
16689         * Makefile.in (tree-ssa-loop-ivopts.o): Add pointer-set.h dependency.
16690         (tree-ssa-reassoc.o): Add pointer-set.h dependency.
16691         (tree-cfg.o): Remove hashtab.h dependency.
16692
16693         * tree-ssa-loop-ivopts.c: Include pointer-set.h.
16694         (struct ivopts_data): Change niters to pointer_map_t.
16695         (struct nfe_cache_elt, nfe_hash, nfe_eq): Delete.
16696         (niter_for_exit): Create pointer_map on demand.  Change for
16697         pointer_map API.
16698         (tree_ssa_iv_optimize_init): Initialize data->niters to NULL.
16699         (free_loop_data): Destroy data->niters if created and reset field.
16700         (tree_ssa_iv_optimize_finalize): Don't delete data->niters here.
16701         (tree_ssa_iv_optimize_loop): Check for presence of stale data.
16702
16703         * tree-ssa-reassoc.c: Include pointer-set.h.
16704         (bb_rank): Change to long *.
16705         (operand_rank): Change to pointer_map_t.
16706         (find_operand_rank): Return long, -1 if not found.  Declare as inline.
16707         (insert_operand_rank): Accept long.
16708         (operand_entry_hash, operand_entry_eq): Remove.
16709         (get_rank): Return long.  Adjust for changes above.
16710         (init_reassoc): Change rank type to long.  Adjust creation of bb_rank
16711         and operand_rank.
16712         (fini_reassoc): Delete operand_rank with pointer_map_destroy.
16713
16714         * tree-ssa-structalias.c (vi_for_tree): Change to pointer_map.
16715         (struct tree_vi, tree_vi_t, tree_vi_hash, tree_vi_eq): Delete.
16716         (insert_vi_for_tree): Rewrite for pointer_map API.  Assert argument
16717         is not NULL.
16718         (lookup_vi_for_tree): Rewrite for pointer_map API.  Return varinfo_t
16719         directly since it cannot be NULL.
16720         (get_vi_for_tree): Rewrite for pointer_map API.
16721         (find_what_p_points_to): Adjust for change to lookup_vi_for_tree.
16722         (init_alias_vars): Create vi_for_tree as pointer_map.
16723         (delete_points_to_sets): Delete vi_for_tree using pointer_map_destroy.
16724
16725         * tree-cfg.c: Don't include hashtab.h.
16726         (edge_to_cases): Declare as pointer_map.
16727         (struct edge_to_cases_elt, edge_to_cases_hash, edge_to_cases_eq):
16728         Delete.
16729         (edge_to_cases_cleanup): Rewrite as pointer_map_traverse callback.
16730         (start_recording_case_labels): Create edge_to_cases as pointer_map.
16731         (end_recoding_case_labels): Cleanup edge_to_cases manually before
16732         destroying it.
16733         (record_switch_edge): Delete.
16734         (get_cases_for_edge): Adjust for pointer_map API, inline
16735         record_switch_edge (rewritten for new API), remove goto.
16736
16737 2006-02-06  Paolo Bonzini  <bonzini@gnu.org>
16738
16739         * Makefile.in (tree-nested.o): Add pointer-set.h dependency.
16740         * tree-nested.c: Include pointer-set.h.
16741         (var_map_elt, var_map_eq, var_map_hash): Delete.
16742         (struct nesting_info): Remove GTY marker.  Change the two htab_t's
16743         to pointer_map_t's.
16744         (nesting_info_bitmap_obstack): New.
16745         (lookup_field_for_decl): Adjust for pointer_map API.
16746         (lookup_tramp_for_decl): Adjust for pointer_map API.
16747         (get_nonlocal_debug_decl): Adjust for pointer_map API.
16748         (get_local_debug_decl): Adjust for pointer_map API.
16749         (convert_nl_goto_reference): Adjust for pointer_map API.
16750         (convert_nl_goto_receiver): Adjust for pointer_map API.
16751         (create_nesting_tree): Create outside GGC space.  Create bitmap on
16752         the new obstack.  Create field_map and var_map as pointer_maps.
16753         (free_nesting_tree): Adjust for changes to create_nesting_tree.
16754         (root): Delete.
16755         (lower_nested_functions): Move root here, no need to NULL it.
16756         Initialize and release the obstack.
16757
16758 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
16759
16760         * tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p):
16761         Remove prototypes and make them non-static.
16762         (struct tree_int_map): Remove.
16763         * tree.h (struct tree_int_map): Move here, turning TO into an
16764         unsigned int.
16765         (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare.
16766
16767         * tree.h (TREE_COMPLEXITY): Remove.
16768         (struct tree_exp): Remove complexity field.
16769         * tree.c (build1_stat): Don't set it.
16770
16771 2007-02-06  Dorit Nuzman  <dorit@il.ibm.com>
16772             Victor Kaplansky  <victork@il.ibm.com>
16773
16774         * tree-vectorizer.c (vect_is_simple_use): Support induction.
16775         (vect_is_simple_reduction): Support reduction with induction as
16776         one of the operands.
16777         (vect_is_simple_iv_evolution): Fix formatting.
16778         * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix
16779         formatting.  Don't mark induction phis for vectorization.
16780         (vect_analyze_scalar_cycles): Analyze all inductions, then reductions.
16781         * tree-vect-transform.c (get_initial_def_for_induction): New function.
16782         (vect_get_vec_def_for_operand): Support induction.
16783         (vect_get_vec_def_for_stmt_copy): Fix formatting and add check for
16784         induction case.
16785         (vectorizable_reduction): Support reduction with induction as one of
16786         the operands.
16787         (vectorizable_type_demotion): Use def-type of stmt argument rather
16788         than dummy def-type.
16789
16790         * tree-ssa-loop.c (gate_scev_const_prop): Return the value of
16791         flag_tree_scev_cprop.
16792         * common.opt (tree-scev-cprop): New flag.
16793
16794         * tree-vect-transform.c (vect_create_destination_var): Use 'kind' in
16795         call to vect_get_new_vect_var.
16796
16797 2007-02-06  Ira Rosen  <irar@il.ibm.com>
16798
16799         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that
16800         vectype is not NULL.
16801         (vect_pattern_recog_1): Likewise.
16802
16803 2007-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16804
16805         * fold-const.c (negate_expr_p): Handle CONJ_EXPR.
16806         (fold_negate_expr): Likewise.
16807
16808 2007-02-05  Alexandre Oliva  <aoliva@redhat.com>
16809
16810         PR debug/30189
16811         * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
16812         even if cv-qualification is the same.
16813
16814 2007-02-05  Geoffrey Keating  <geoffk@apple.com>
16815
16816         * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
16817         __enable_execute_stack on completion.
16818
16819 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16820
16821         * config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8,
16822         athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov,
16823         athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul,
16824         athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn,
16825         athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8,
16826         athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load,
16827         athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8,
16828         athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10.
16829
16830 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16831
16832         * config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse,
16833         cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387,
16834         swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse,
16835         fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse,
16836         x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed,
16837         floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse,
16838         floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1,
16839         mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn,
16840         umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn,
16841         umuldi3_highpart_rex64, umulsi3_highpart_insn,
16842         umulsi3_highpart_zext, smuldi3_highpart_rex64,
16843         smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld,
16844         x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse,
16845         sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387,
16846         sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387,
16847         sqrtextenddfxf2_i387): Added amdfam10_decode.
16848
16849         * config/i386/athlon.md (athlon_idirect_amdfam10,
16850         athlon_ivector_amdfam10, athlon_idirect_load_amdfam10,
16851         athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10,
16852         athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10,
16853         athlon_ivector_store_amdfam10): New define_insn_reservation.
16854         (athlon_idirect_loadmov, athlon_idirect_movstore): Added
16855         amdfam10.
16856
16857 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16858
16859         * config/i386/athlon.md (athlon_call_amdfam10,
16860         athlon_pop_amdfam10, athlon_lea_amdfam10): New
16861         define_insn_reservation.
16862         (athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8,
16863         athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI,
16864         athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10.
16865
16866 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16867
16868         * config/i386/athlon.md (athlon_sseld_amdfam10,
16869         athlon_mmxld_amdfam10, athlon_ssest_amdfam10,
16870         athlon_mmxssest_short_amdfam10): New define_insn_reservation.
16871
16872 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16873
16874         * config/i386/athlon.md (athlon_sseins_amdfam10): New
16875         define_insn_reservation.
16876         * config/i386/i386.md (sseins): Added sseins to define_attr type
16877         and define_attr unit.
16878         * config/i386/sse.md: Set type attribute to sseins for insertq
16879         and insertqi.
16880
16881 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16882
16883         * config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10,
16884         ssecmpvector_load_amdfam10, ssecmpvector_amdfam10,
16885         ssecomi_load_amdfam10, ssecomi_amdfam10,
16886         sseaddvector_load_amdfam10, sseaddvector_amdfam10): New
16887         define_insn_reservation.
16888         (ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10.
16889
16890 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16891
16892         * config/i386/athlon.md (cvtss2sd_load_amdfam10,
16893         cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10,
16894         cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10,
16895         cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10,
16896         cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10,
16897         cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New
16898         define_insn_reservation.
16899
16900         * config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si,
16901         cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq,
16902         cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq,
16903         cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd,
16904         cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute.
16905
16906 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16907
16908         * config/i386/athlon.md (athlon_ssedivvector_amdfam10,
16909         athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10,
16910         athlon_ssemulvector_load_amdfam10): New define_insn_reservation.
16911         (athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul,
16912         athlon_ssemul_load_k8): Added amdfam10.
16913
16914 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16915
16916         * config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro.
16917         (x86_sse_unaligned_move_optimal): New variable.
16918
16919         * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for
16920         m_AMDFAM10.
16921         (ix86_expand_vector_move_misalign): Add code to generate movupd/movups
16922         for unaligned vector SSE double/single precision loads for AMDFAM10.
16923
16924 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16925
16926         * config/i386/i386.h (TARGET_AMDFAM10): New macro.
16927         (TARGET_CPU_CPP_BUILTINS): Add code for amdfam10.
16928         Define TARGET_CPU_DEFAULT_amdfam10.
16929         (TARGET_CPU_DEFAULT_NAMES): Add amdfam10.
16930         (processor_type): Add PROCESSOR_AMDFAM10.
16931
16932         * config/i386/i386.md: Add amdfam10 as a new cpu attribute to match
16933         processor_type in config/i386/i386.h.
16934         Enable imul peepholes for TARGET_AMDFAM10.
16935
16936         * config.gcc: Add support for --with-cpu option for amdfam10.
16937
16938         * config/i386/i386.c (amdfam10_cost): New variable.
16939         (m_AMDFAM10): New macro.
16940         (m_ATHLON_K8_AMDFAM10): New macro.
16941         (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
16942         x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop,
16943         x86_promote_QImode, x86_integer_DFmode_moves,
16944         x86_partial_reg_dependency, x86_memory_mismatch_stall,
16945         x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
16946         x86_sse_partial_reg_dependency, x86_sse_typeless_stores,
16947         x86_use_ffreep, x86_use_incdec, x86_four_jump_limit,
16948         x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns):
16949         Enable/disable for amdfam10.
16950         (override_options): Add amdfam10_cost to processor_target_table.
16951         Set up PROCESSOR_AMDFAM10 for amdfam10 entry in
16952         processor_alias_table.
16953         (ix86_issue_rate): Add PROCESSOR_AMDFAM10.
16954         (ix86_adjust_cost): Add code for amdfam10.
16955
16956 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16957
16958         * config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm)
16959         instruction set feature flag. Add new (-mpopcnt) flag for popcnt
16960         instruction. Add new SSE4A (-msse4a) instruction set feature flag.
16961         * config/i386/i386.h: Add builtin definition for SSE4A.
16962         * config/i386/i386.md: Add support for ABM instructions
16963         (popcnt and lzcnt).
16964         * config/i386/sse.md: Add support for SSE4A instructions
16965         (movntss, movntsd, extrq, insertq).
16966         * config/i386/i386.c: Add support for ABM and SSE4A builtins.
16967         Add -march=amdfam10 flag.
16968         * config/i386/ammintrin.h: Add support for SSE4A intrinsics.
16969         * doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt
16970         and amdfam10.
16971         * doc/extend.texi: Add documentation for SSE4A builtins.
16972
16973 2007-02-05  Bob Wilson  <bob.wilson@acm.org>
16974
16975         * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
16976
16977 2007-02-05  Richard Guenther  <rguenther@suse.de>
16978
16979         * tree-vectorizer.h (vectorizable_function): Add argument type
16980         argument, change return type.
16981         * tree-vect-patterns.c (vect_recog_pow_pattern): Adjust caller.
16982         * tree-vect-transform.c (vectorizable_function): Handle extra
16983         argument, return vectorized function decl.
16984         (build_vectorized_function_call): Remove.
16985         (vectorizable_call): Handle calls with result and argument types
16986         differing.  Handle loop vectorization factor correctly.
16987         * targhooks.c (default_builtin_vectorized_function): Adjust for
16988         extra argument.
16989         * targhooks.h (default_builtin_vectorized_function): Likewise.
16990         * target.h (builtin_vectorized_function): Add argument type
16991         argument.
16992         * config/i386/i386.c (ix86_builtin_vectorized_function): Handle
16993         extra argument, allow vectorizing of lrintf.
16994         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Adjust
16995         documentation of target hook.
16996
16997 2007-02-05  Hans-Peter Nilsson  <hp@axis.com>
16998
16999         PR target/30665
17000         * config/cris/cris.md ("*andsi_movu", "*andsi_clear", "*andhi_movu")
17001         ("*andhi_clear", andu (casesi+45)): For size-changed operand where
17002         memory is allowed, require !side_effects_p, not just !MEM_VOLATILE_P.
17003
17004 2007-02-05  Roger Sayle  <roger@eyesopen.com>
17005
17006         * fold-const.c (fold_unary) <REAL_PART>: Test for availability of
17007         BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
17008         <IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN.
17009         * builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS
17010         before canonicalizing sincos to cexpi.
17011         (fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi.
17012
17013 2007-02-05  Roger Sayle  <roger@eyesopen.com>
17014
17015         * config/alpha/alpha.c (alpha_add_builtins): New Helper function.
17016         Set TREE_READONLY and TREE_NOTHROW directly, not via attributes.
17017         (alpha_init_builtins): Use alpha_add_builtins to process tables.
17018
17019 2007-02-05  Roger Sayle  <roger@eyesopen.com>
17020
17021         * mips-tfile.c (initialize_init_file): Correct endianness test.
17022
17023 2007-02-05  Kazu Hirata  <kazu@codesourcery.com>
17024
17025         * config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use
17026         the 'y' constraint.
17027
17028 2007-02-05  Richard Sandiford  <richard@codesourcery.com>
17029
17030         * dwarf2out.c (dwarf2out_frame_debug_expr): Record the register
17031         saves in a PARALLEL before the register assignments.
17032
17033 2007-02-05  Richard Sandiford  <richard@codesourcery.com>
17034
17035         * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require
17036         DWARF_FRAME_RETURN_COLUMN to be a general register.
17037         * dwarf2out.c (init_return_column_size): New function, split from...
17038         (expand_builtin_init_dwarf_reg_sizes): ...here.  Allow both
17039         DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN
17040         to be nongeneral registers.
17041         * config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and
17042         integer registers.
17043         (DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define.
17044         (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
17045
17046 2007-02-04  Zdenek Dvorak <dvorakz@suse.cz>
17047
17048         * cfgcleanup.c (try_optimize_cfg): Avoid removing ENTRY_BLOCK_PTR.
17049
17050 2007-02-04  Zdenek Dvorak <dvorakz@suse.cz>
17051
17052         * cfgloopmanip.c (loop_delete_branch_edge): Removed.
17053         (remove_path): Use can_remove_branch_p and remove_branch instead
17054         of loop_delete_branch_edge.
17055         * tree-ssa-loop-manip.c (scale_dominated_blocks_in_loop): New function.
17056         (tree_transform_and_unroll_loop): Remove dead branches immediately.
17057         Update profile using scale_dominated_blocks_in_loop.
17058         * cfghooks.c (can_remove_branch_p, remove_branch): New functions.
17059         * cfghooks.h (struct cfg_hooks): Add can_remove_branch_p.
17060         (can_remove_branch_p, remove_branch): Declare.
17061         * tree-cfg.c (tree_can_remove_branch_p): New function.
17062         (tree_cfg_hooks): Add tree_can_remove_branch_p.
17063         * cfgrtl.c (rtl_can_remove_branch_p): New function.
17064         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add rtl_can_remove_branch_p.
17065
17066 2007-02-05  Jan Hubicka  <jh@suse.cz>
17067
17068         PR middle-end/30696
17069         * ipa-inline.c (cgraph_clone_inlined_nodes): When there are unanalyzed
17070         nodes in cgraph, don't remove offline copy of the function.
17071
17072 2007-02-04  Jan Hubicka  <jh@suse.cz>
17073
17074         * tree-sra.c (sra_walk_expr): Add linebreaks. BITFIELD_REFs into
17075         vectors might cause maybe_lookup_element_for_expr to be called
17076         on non-sra-candidate.
17077
17078 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>
17079
17080         * config/bfin/bfin-modes.def, config/bfin/bfin.c,
17081         config/bfin/bfin.md, config/bfin/predicates.md: Follow
17082         spelling conventions.
17083
17084 2007-02-04  Richard Guenther  <rguenther@suse.de>
17085
17086         PR middle-end/30636
17087         * fold-const.c (try_move_mult_to_index): Make sure to not
17088         overflow one dimension of a multi-dimensional array access.
17089
17090 2007-02-04  Jan Hubicka  <jh@suse.cz>
17091
17092         * passes.c (init_optimization_passes): Reindent.
17093
17094 2007-02-04  Jan Hubicka  <jh@suse.cz>
17095             Eric Botcazou  <ebotcazou@adacore.com>
17096
17097         * tree-optimize.c (has_abnormal_outgoing_edge_p): Move to...
17098         (execute_fixup_cfg): Break out the abnormal goto code.
17099         * tree-inline.c (has_abnormal_outgoing_edge_p): ...here.
17100         (make_nonlocal_label_edges): Move here from execute_fixup_cfg.
17101         (optimize_inline_calls): Call make_nonlocal_label_edges.
17102
17103 2007-02-04  Jan Hubicka  <jh@suse.cz>
17104
17105         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Return
17106         true when something was changed.
17107         (rename_ssa_copies): When something was changed, do
17108         TODO_remove_unused_locals.
17109         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
17110         add TODO_remove_unused_locals when instruction was removed.
17111
17112 2007-02-04  Jan Hubicka  <jh@suse.cz>
17113
17114         * ipa-inline.c (try_inline): Improve debug output; work on already
17115         inline edges too.
17116         (cgraph_decide_inlining_incrementally): Indent; improve debug output;
17117         call try_inline for already inlined edges too when flattening;
17118         inline also functions that make callee growth but overall unit size
17119         reduce.
17120
17121 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>
17122
17123         * config/m32c/bitops.md, config/m32c/jump.md,
17124         config/m32c/m32c.c, config/m32c/m32c.h, config/m32r/m32r.c,
17125         config/m32r/m32r.h, config/m32r/m32r.md,
17126         config/m32r/predicates.md, config/m68hc11/larith.asm,
17127         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
17128         config/m68k/m68k.h, config/mcore/mcore.md, config/mips/4k.md,
17129         config/mips/mips-protos.h, config/mips/mips.c,
17130         config/mips/mips.h, config/mips/mips.md, config/mips/mips16.S,
17131         config/mn10300/mn10300.h, config/mn10300/predicates.md,
17132         config/mt/mt.c, config/mt/mt.h, config/mt/mt.md: Follow
17133         spelling conventions.
17134
17135         * config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
17136         Follow spelling conventions.
17137
17138 2007-02-03  Douglas Gregor  <doug.gregor@gmail.com>
17139
17140         * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't
17141         warn about C++0x compatibility.
17142
17143 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>
17144
17145         * config/h8300/h8300.c, config/h8300/h8300.h,
17146         config/h8300/h8300.md: Follow spelling conventions.
17147
17148 2007-02-03  Uros Bizjak  <ubizjak@gmail.com>
17149
17150         PR middle-end/30667
17151         * combine.c (try_combine): Do not substitute source operand
17152         with constants wider than 2 * HOST_BITS_PER_WIDE_INT.
17153
17154 2007-02-03  Jan Hubicka  <jh@suse.cz>
17155
17156         PR gcov-profile/30650
17157         * value-prof.c (stringop_block_profile): Fix handling of size counter;
17158         do not divide by zero for never executed counters.
17159         (tree_find_values_to_profile): Fix counters.
17160         * gcov-ui.h (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): Fix comments.
17161
17162 2007-02-03  Ian Lance Taylor  <iant@google.com>
17163
17164         * lower-subreg.c (simple_move_operand): New static function,
17165         broken out of simple_move.  Reject LABEL_REF, SYMBOL_REF, and HIGH
17166         operands.
17167         (simple_move): Call simple_move_operand.
17168         (find_decomposable_subregs): Add special handling of MEMs.
17169         (can_decompose_p): Rename from cannot_decompose_p.  Reverse
17170         meaning of return value.  If we see a hard register, test whether
17171         it can store a word_mode value.  Change all callers.
17172
17173 2007-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17174
17175         * pa.md (addvdi3, addvsi3, subvdi3, subvsi3, negvdi2, negvsi2): New
17176         ftrapv insns and expanders.
17177         (subdi3): Change define_expand operand 1 to arith11_operand, and
17178         operand 2 to reg_or_0_operand.  Change constraints of 64-bit insn
17179         pattern to handle reg_or_0 operands.  Revise 32-bit insn pattern to
17180         handle 11-bit constants and reg_or_0 operands in operands 1 and 2,
17181         respectively.
17182
17183         PR middle-end/30174
17184         * varasm.c (notice_global_symbol): Treat global objects as weak when
17185         flag_shlib is true.
17186
17187 2007-02-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17188
17189         * emit-rtl.c (dconstpi): Delete.
17190         (dconstsqrt2): New.
17191         (init_emit_once): Delete dconstpi and init dconstsqrt2.
17192         * real.h (dconstpi): Delete.
17193         (dconstsqrt2): New.
17194         * builtins.c (fold_builtin_cabs): Use dconstsqrt2.
17195         (fold_builtin_hypot): Likewise.
17196
17197 2007-02-03  Tom Tromey  <tromey@redhat.com>
17198
17199         PR driver/30246
17200         * gcc.c (cpp_unique_options): Any of -ggdb3, -gstabs3,
17201         -gcoff3, -gxcoff3, -gvms3 implies -dD.
17202
17203 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
17204
17205         * c-decl.c, config/avr/avr.c, config/avr/avr.h,
17206         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
17207         config/mn10300/mn10300.c, config/pdp11/pdp11.h,
17208         config/rs6000/cell.md, config/rs6000/darwin.h,
17209         config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c,
17210         config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h,
17211         jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c,
17212         tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment
17213         typos.  Follow spelling conventions.
17214         * doc/invoke.texi: Follow spelling conventions.
17215
17216 2007-02-03  Roger Sayle  <roger@eyesopen.com>
17217
17218         * simplify-rtx.c (simplify_relational_operation_1): Implement some
17219         canonicalization transformations that attempt to simplify integer
17220         constant comparisons to become comparisons against zero.
17221
17222 2007-02-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17223
17224         * builtins.c (fold_builtin_cabs): Fold cabs(x+xi) into
17225         fabs(x)*sqrt(2).
17226         * fold-const.c (fold_binary): Fix comment typos.  Fold complex
17227         (x,0)-(0,y) into (x,-y).  Likewise (0,y)-(x,0) into (-x,y).
17228
17229 2007-02-02  Mike Stump  <mrs@apple.com>
17230
17231         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Add.
17232         * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
17233         (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
17234         generate a branch island.
17235
17236 2007-02-02  Bob Wilson  <bob.wilson@acm.org>
17237
17238         * config/xtensa/xtensa.c (smalloffset_mem_p): Use BASE_REG_P.
17239         (xtensa_legitimate_address_p): New.
17240         (xtensa_legitimize_address): New.
17241         (xtensa_output_addr_const_extra): New.
17242         * config/xtensa/xtensa.h (REG_OK_STRICT_FLAG): Define.
17243         (BASE_REG_P): New.
17244         (REG_OK_FOR_BASE_P): Use BASE_REG_P.
17245         (GO_IF_LEGITIMATE_ADDRESS): Move code to xtensa_legitimate_address_p.
17246         (LEGITIMIZE_ADDRESS): Move code to xtensa_legitimize_address.
17247         (OUTPUT_ADDR_CONST_EXTRA): Move code to xtensa_output_addr_const_extra.
17248         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): New.
17249         (xtensa_legitimize_address): New.
17250         (xtensa_output_addr_const_extra): New.
17251
17252 2007-02-02  Steve Ellcey  <sje@cup.hp.com>
17253
17254         * config/ia64/ia64.c (ia64_print_operand): Fix compare strings.
17255
17256 2007-02-02  Ian Lance Taylor  <iant@google.com>
17257
17258         * expmed.c (expand_divmod): Add comment.
17259
17260 2007-02-02  Kazu Hirata  <kazu@codesourcery.com>
17261
17262         * emit-rtl.c (renumber_insns): Remove.
17263         * flags.h: Remove the extern for flag_renumber_insns.
17264         * rtl.h: Remove the prototype for renumber_insns.
17265         * toplev.c (flag_renumber_insns): Remove.
17266
17267 2007-02-02  Hui-May Chang  <hm.chang@apple.com>
17268
17269         Revert for x86 darwin:
17270         2005-06-19  Uros Bizjak  <uros@kss-loka.si>
17271
17272         * config/i386/i386.c (ix86_function_arg_regno_p): Put back the
17273         code before the following patch under TARGET_MACHO.
17274         (ix86_function_value_regno_p): Likewise.
17275
17276 2007-02-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17277
17278         * fold-const.c (negate_expr_p, fold_negate_expr): Handle
17279         COMPLEX_EXPR.
17280
17281 2007-02-02  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
17282
17283         PR target/29682
17284         * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory
17285         loads to general or fp registers.  Add comments.
17286         * config/ia64/ia64.md (reg_pred_prefix): Add comment.
17287
17288 2007-02-02  Paolo Bonzini  <bonzini@gnu.org>
17289
17290         * pointer-set.c (insert_aux): Only return insertion slot.
17291         (pointer_set_insert): Adjust.
17292         (pointer_set_traverse, struct pointer_map_t, pointer_map_create,
17293         pointer_map_destroy, pointer_map_insert, pointer_map_contains,
17294         pointer_map_traverse): New.
17295         * pointer-set.h (pointer_set_traverse, struct pointer_map_t,
17296         pointer_map_create,  pointer_map_destroy, pointer_map_insert,
17297         pointer_map_contains, pointer_map_traverse): Declare.
17298
17299 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
17300
17301         PR middle-end/30473
17302         * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
17303         sprintf (str, "%s").  Do not optimize sprintf (str, "nopercent", p++).
17304
17305 2007-02-02  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
17306
17307         * sched-int.h (ds_to_dk, dk_to_ds): Declare functions.
17308
17309         (struct _dep): New type.
17310         (dep_t): New typedef.
17311         (DEP_PRO, DEP_CON, DEP_KIND): New access macros.
17312         (DEP_STATUS): New access macro.  The macro with the same name was
17313         renamed to DEP_LINK_STATUS.
17314         (dep_init): Declare function
17315
17316         (struct _dep_link): New type.
17317         (dep_link_t): New typedef.
17318         (DEP_LINK_NODE, DEP_LINK_NEXT, DEP_LINK_PREV_NEXTP): New access macros.
17319         (DEP_LINK_DEP, DEP_LINK_PRO, DEP_LINK_CON, DEP_LINK_KIND): New macros.
17320         (DEP_LINK_STATUS): New macro.
17321         (debug_dep_links): New debug function.
17322
17323         (struct _deps_list): New type.
17324         (deps_list_t): New typedef.
17325         (DEPS_LIST_FIRST): New access macro.
17326         (FOR_EACH_DEP_LINK): New cycle macro.
17327         (create_deps_list, free_deps_list, delete_deps_list): Declare
17328         functions.
17329         (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
17330         (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
17331         (copy_deps_list_change_con): Ditto.
17332
17333         (move_dep_link): Declare function.
17334
17335         (struct _dep_node): New type.
17336         (dep_node_t): New typedef.
17337         (DEP_NODE_BACK, DEP_NODE_DEP, DEP_NODE_FORW): New access macros.
17338
17339         (struct haifa_insn_data.back_deps): New field to hold backward
17340         dependencies of the insn.
17341         (struct haifa_insn_data.depend): Rename to forw_deps.  Change its type
17342         to deps_list_t.
17343         (struct haifa_insn_data.resolved_deps): Rename to resolved_back_deps.
17344         Change its type to deps_list_t.
17345         (INSN_BACK_DEPS): New access macro to use instead of LOG_LINKS.
17346         (INSN_DEPEND): Rename to INSN_FORW_DEPS.
17347         (RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS.
17348
17349         (INSN_COST): Move to haifa-sched.c.  Use insn_cost () instead.
17350
17351         (DEP_STATUS): Rename to DEP_LINK_STATUS.  Fix typo in the comment.
17352
17353         (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration
17354         and all callers.
17355         (dep_cost): Declare.
17356
17357         * sched-deps.c (CHECK): New macro to (en/dis)able sanity checks.
17358         (ds_to_dk, dk_to_ds): New functions.
17359
17360         (init_dep_1): New static function.
17361         (init_dep): New function.
17362         (copy_dep): New static function.
17363
17364         (dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static
17365         functions.
17366         (detach_dep_link): New static function.
17367         (move_dep_link): New function.
17368
17369         (dep_links_consistent_p, dump_dep_links): New static functions.
17370         (debug_dep_links): New debugging function.
17371
17372         (deps_obstack, dl_obstack, dn_obstack): New static variables.
17373
17374         (alloc_deps_list, init_deps_list): New static functions.
17375         (create_deps_list): New function.
17376         (clear_deps_list): New static function.
17377         (free_deps_list, delete_deps_list, deps_list_empty_p): New functions.
17378         (deps_list_consistent_p, dump_deps_list): New static functions.
17379         (debug_deps_list): New function.
17380         (add_back_dep_to_deps_list, find_link_by_pro_in_deps_list): New
17381         functions.
17382         (find_link_by_con_in_deps_list, copy_deps_list_change_con): Ditto.
17383
17384         (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Update to
17385         use new scheduler dependencies lists.
17386         (add_back_dep, delete_all_dependences, fixup_sched_groups): Ditto.
17387         (sched_analyze): Ditto.  Initialize dependencies lists.
17388         (add_forw_dep, compute_forward_dependences): Update to use new
17389         scheduler dependencies lists.
17390
17391         (init_dependency_caches): Init deps_obstack.
17392         (free_dependency_caches): Free deps_obstack.
17393
17394         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use
17395         new scheduler dependencies lists.
17396         (delete_forw_dep, add_or_update_back_forw_dep): Ditto.
17397         (add_back_forw_dep, delete_back_forw_dep): Ditto.
17398
17399         * sched-rgn.c (set_spec_fed, find_conditional_protection, is_pfree):
17400         Update to use new scheduler dependencies lists.
17401         (is_conditionally_protected, is_prisky, add_branch_dependences): Ditto.
17402         (debug_dependencies): Ditto.
17403         (schedule_region): Update comments.
17404
17405         * sched-ebb.c (earliest_block_with_similiar_load): Update to use new
17406         scheduler dependencies lists.
17407         (schedule_ebb): Update comments.
17408
17409         * rtl.def (DEPS_LIST): Remove.
17410
17411         * lists.c (unused_deps_list): Remove.
17412         (free_list): Update assertions.
17413
17414         (alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove.
17415         (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
17416
17417         * rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations.
17418         (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
17419
17420         * haifa-sched.c (comments): Update.
17421         (insn_cost1): Remove.  Inline the code into insn_cost ().
17422         (insn_cost): Update to use new scheduler dependencies lists.  Move
17423         processing of the dependency cost to dep_cost ().
17424         (dep_cost): New function.  Use it instead of insn_cost () when
17425         evaluating cost of the dependency.  Use compatible interface to
17426         interact with the target.
17427         (priority): Update to use new scheduler dependencies lists.
17428         (rank_for_schedule): Ditto.  Optimize heuristic that prefers the insn
17429         with greater number of insns that depend on the insn.
17430         (schedule_insn): Update to use new scheduler dependencies lists.  Add
17431         code to free backward dependencies lists.  Inline and optimize code
17432         from resolve_dep () - see PR28071.
17433         (ok_for_early_queue_removal): Update to use new scheduler dependencies
17434         lists.  Update call to targetm.sched.is_costly_dependence hook.
17435
17436         (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
17437         scheduler dependencies lists.
17438
17439         (resolve_dep): Remove.  Move the logic to schedule_insn ().
17440         (init_h_i_d): Initialize dependencies lists.
17441
17442         (process_insn_depend_be_in_spec): Rename to
17443         process_insn_forw_deps_be_in_spec.  Update to use new scheduler
17444         dependencies lists.
17445         (add_to_speculative_block, create_check_block_twin, fix_recovery_deps):
17446         Update to use new scheduler dependencies lists.
17447         (clear_priorities, calc_priorities, add_jump_dependencies): Ditto.
17448
17449         * ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use
17450         new scheduler dependencies lists.
17451         (build_intra_loop_deps): Ditto.
17452
17453         * target.h (struct _dep): Declare to use in
17454         gcc_target.sched.is_costly_dependence.
17455         (struct gcc_target.sched.adjust_cost): Fix typo.
17456         (struct gcc_target.sched.is_costly_dependence): Change signature to
17457         use single dep_t parameter instead of an equivalent triad.
17458         (struct gcc_target.sched.adjust_cost_2): Remove.
17459
17460         * target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove.
17461
17462         * reg-notes.def (DEP_TRUE, DEP_OUTPUT, DEP_ANTI): Update comments.
17463
17464         * doc/tm.texi (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Update
17465         documentation.
17466         (TARGET_SCHED_ADJUST_COST_2): Remove documentation.
17467
17468         * doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler.
17469         (REG_DEP_TRUE): Document.
17470
17471         * config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost.
17472         Change signature to correspond to the targetm.sched.adjust_cost hook.
17473         Update use in TARGET_SCHED_ADJUST_COST_2.
17474         (TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST.
17475         (ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use
17476         new scheduler dependencies lists.
17477         (ia64_gen_check): Ditto.
17478
17479         * config/mips/mips.c (vr4130_swap_insns_p): Update to use new
17480         scheduler dependencies lists.
17481
17482         * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change
17483         signature to correspond to the targetm.sched.is_costly_dependence hook.
17484         (is_costly_group): Update to use new scheduler dependencies lists.
17485
17486         * config/spu/spu.c (spu_sched_adjust_cost): Use insn_cost () function
17487         instead of INSN_COST () macro.
17488
17489 2007-02-01  Ian Lance Taylor  <iant@google.com>
17490
17491         * lower-subreg.c (resolve_clobber): Handle a subreg of a concatn.
17492
17493 2007-02-01  Guy Martin  <gmsoft@gentoo.org>
17494
17495         * pa.md (tp_load): Correct mfctl instruction syntax.
17496
17497 2007-02-01  Geoffrey Keating  <geoffk@apple.com>
17498
17499         * config/rs6000/rs6000.c (rs6000_stack_info): Correct
17500         altivec_padding_size calculation on AIX.  Improve comment, add
17501         assert to verify that it's right.
17502
17503         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for
17504         64-bit.
17505
17506 2007-2-01  Seongbae Park  <seongbae.park@gmail.com>
17507
17508         PR inline-asm/28686
17509         * global.c (global_alloc): Add mising initialization of
17510         ELIMINABLE_REGSET.
17511
17512 2007-02-01  Roger Sayle  <roger@eyesopen.com>
17513
17514         * alias.c (init_alias_analysis): Correct whitespace.
17515         * bb-reorder.c (fix_edges_for_rarely_executed_code,
17516         partition_hot_cold_basic_blocks): Likewise.
17517         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
17518         expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf,
17519         maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
17520         fold_builtin_snprintf_chk, fold_builtin_printf,
17521         fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2,
17522         do_mpfr_arg3, do_mpfr_sincos): Likewise.
17523         * cfgcleanup.c (cleanup_cfg): Likewise.
17524         * cfgexpand.c (tree_expand_cfg): Likewise.
17525         * fold-const.c (fold_binary) <RDIV_EXPR>: Likewise.
17526         * function.c (get_next_funcdef_no): Likewise.
17527         * gengtype.c (main): Likewise.
17528         * genmodes.c (main): Likewise.
17529         * gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise.
17530         * haifa-sched.c (schedule_block, extend_h_i_d): Likewise.
17531         * ifcvt.c (noce_emit_move_insn): Likewise.
17532         * modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order):
17533         Likewise.
17534         * stor-layout.c (get_best_mode): Likewise.
17535         * tree-ssa-loop-niter.c (get_val_for): Likewise.
17536         * tree-ssa-structalias.c (get_varinfo, get_varinfo_fc,
17537         scc_visit, do_ds_constraint, do_complex_constraint, label_visit,
17538         perform_var_substitution, solve_graph): Likewise.
17539         * tree-vrp.c (vrp_finalize): Likewise.
17540
17541 2007-02-01  Ian Lance Taylor  <iant@google.com>
17542
17543         * lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the
17544         high part of a paradoxical subreg, return a constant zero.
17545
17546 2007-02-01  Zdenek Dvorak <dvorakz@suse.cz>
17547
17548         * toplev.c (lang_dependent_init): Call init_set_costs.
17549         * loop-init.c (loop_optimizer_init): Do not call init_set_costs.
17550
17551 2007-02-01  Richard Guenther  <rguenther@suse.de>
17552
17553         PR middle-end/30656
17554         * fold-const.c (fold_negate_expr): Allow negating a
17555         constant if overflow does not change.
17556
17557 2007-02-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17558
17559         * doc/c-tree.texi (Expression trees): Improve markup.
17560         * doc/tm.texi (Register Classes, Addressing Modes)
17561         (Floating Point): Fix spacing after abbreviations.  Fix some
17562         typos.
17563
17564 2007-02-01  Ben Elliston  <bje@au.ibm.com>
17565
17566         * doc/invoke.texi: Replace "bugfix" with "bug fix" throughout.
17567         * doc/contrib.texi: Likewise.
17568         * doc/install.texi: Likewise.
17569
17570 2007-01-31  Richard Henderson  <rth@redhat.com>
17571             Ian Lance Taylor  <iant@google.com>
17572
17573         * lower-subreg.c: New file.
17574         * rtl.def (CONCATN): Define.
17575         * passes.c (init_optimization_passes): Add pass_lower_subreg and
17576         pass_lower_subreg2.
17577         * emit-rtl.c (update_reg_offset): New static function, broken out
17578         of gen_rtx_REG_offset.
17579         (gen_rtx_REG_offset): Call update_reg_offset.
17580         (gen_reg_rtx_offset): New function.
17581         * regclass.c: Revert patch of 2006-03-05, restoring
17582         reg_scan_update.
17583         (clear_reg_info_regno): New function.
17584         * dwarf2out.c (concatn_loc_descriptor): New static function.
17585         (loc_descriptor): Handle CONCATN.
17586         * common.opt (fsplit_wide_types): New option.
17587         * opts.c (decode_options): Set flag_split_wide_types when
17588         optimizing.
17589         * timevar.def (TV_LOWER_SUBREG): Define.
17590         * rtl.h (gen_reg_rtx_offset): Declare.
17591         (reg_scan_update): Declare.
17592         * regs.h (clear_reg_info_regno): Declare.
17593         * tree-pass.h (pass_lower_subreg): Declare.
17594         (pass_lower_subreg2): Declare.
17595         * doc/invoke.texi (Option Summary): List -fno-split-wide-types.
17596         (Optimize Options): Add -fsplit-wide-types to -O1 list.  Document
17597         -fsplit-wide-types.
17598         * doc/rtl.texi (Regs and Memory): Document concat and concatn.
17599         * Makefile.in (OBJS-common): Add lower-subreg.o.
17600         (lower-subreg.o): New target.
17601
17602 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
17603
17604         * config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove.
17605
17606 2007-01-31  Anatoly Sokolov <aesok@post.ru>
17607
17608         PR target/19087
17609         * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
17610
17611 2007-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17612
17613         PR middle-end/29335
17614         * builtins.c (fold_builtin_sqrt): Use MPFR for constant args.
17615
17616 2007-01-31  Zdenek Dvorak <dvorakz@suse.cz>
17617
17618         * cfgloop.h: Include vec-prim.h.
17619         (enum li_flags): Remove LI_ONLY_OLD.
17620         (loop_iterator): Changed.
17621         (fel_next, fel_init): Iterate over loop tree.
17622         (FOR_EACH_LOOP_BREAK): New macro.
17623         * loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to
17624         FOR_EACH_LOOP.
17625         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto.
17626         * modulo-sched.c (sms_schedule): Ditto.
17627         * tree-vectorizer.c (vectorize_loops): Ditto.
17628         * doc/loop.texi: Update information on loop numbering and behavior of
17629         FOR_EACH_LOOP wrto new loops.
17630         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
17631         add_to_evolution_1): Test nestedness of loops instead of comparing
17632         their numbers.
17633         * tree-chrec.c (chrec_fold_plus_poly_poly,
17634         chrec_fold_multiply_poly_poly, chrec_evaluate,
17635         hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num,
17636         reset_evolution_in_loop): Ditto.
17637         * Makefile.in (CFGLOOP_H): Add vecprim.h dependency.
17638
17639 2007-01-31  Dirk Mueller  <dmueller@suse.de>
17640
17641         * c-common.c (warn_about_parentheses): Separate warning about
17642         un-parenthized sequence of comparison operators from the one
17643         which is supposed to warn about x <= y <= z.
17644
17645 2007-01-31  Uros Bizjak  <ubizjak@gmail.com>
17646
17647         * optabs.h (enum optab_index): Add new OTI_isinf.
17648         (isinf_optab): Define corresponding macro.
17649         * optabs.c (init_optabs): Initialize isinf_optab.
17650         * genopinit.c (optabs): Implement isinf_optab using isinf?f2
17651         patterns.
17652         * builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}.
17653         (expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L}
17654         using isinf_optab.
17655         (expand_builtin): Expand BUILT_IN_ISINF{,F,L} using
17656         expand_builtin_interclass_mathfn.
17657         * reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM.
17658         * config/i386/i386.md (UNSPEC_FXAM): New constant.
17659         (fxam<mode>2_i387): New insn pattern.
17660         (isinf<mode>2) New expander to implement isinf, isinff and isinfl
17661         built-in functions as x87 inline asm.
17662
17663 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
17664
17665         * config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New.
17666
17667 2007-01-30  Eric Christopher  <echristo@apple.com>
17668
17669         * config.gcc: Add geode.
17670
17671 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
17672
17673         * cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c,
17674         ipa-inline.c, tree-profile.c, tree-ssa-live.c,
17675         tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c,
17676         value-prof.c: Fix comment typos.
17677
17678 2007-01-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17679
17680         PR c++/24745
17681         * doc/invoke.texi (Wpointer-arith): Document warning.
17682
17683 2007-01-30  Janis Johnson  <janis187@us.ibm.com>
17684
17685         * doc/extend.texi (Decimal Floating Types): Remove decfloat.h from
17686         the list of discrepancies from the draft TR.
17687
17688 2007-01-30  Dirk Mueller  <dmueller@suse.de>
17689
17690         PR c++/30601
17691         * doc/invoke.texi (-Wreturn-type): Update description to
17692         match new behavior.
17693
17694 2007-01-30  Richard Sandiford  <richard@codesourcery.com>
17695
17696         * cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
17697
17698 2007-01-30  Uros Bizjak  <ubizjak@gmail.com>
17699
17700         * builtins.c (expand_builtin_int_interclass_roundingfn): New function
17701         to handle optabs that operate on floating point input argument and
17702         output to integer output.
17703         (expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ...
17704         (expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here.
17705         (expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using
17706         expand_builtin_interclass_mathfn ().
17707         * config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387.
17708         (ilogbsi2): Remove.
17709         (ilogbxf2, ilogb<mode>2): New expanders to implement ilogb, ilogbf and
17710         ilogbl built-in functions as x87 intrinsics.
17711
17712 2007-01-30  Richard Guenther  <rguenther@suse.de>
17713
17714         PR middle-end/27657
17715         * dwarf2out.c (reference_to_unused): Query varpool if the
17716         variable was output.
17717
17718 2007-01-30  Richard Guenther  <rguenther@suse.de>
17719
17720         PR middle-end/30313
17721         * passes.c (execute_one_pass): Reset in_gimple_form to not
17722         confuse non-unit-at-a-time mode.
17723
17724 2007-01-29  Roger Sayle  <roger@eyesopen.com>
17725             Richard Guenther  <rguenther@suse.de>
17726
17727         * fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to
17728         avoid undefined behaviour on overflow.  Use force_fit_type_double
17729         to construct the constant with the specified TREE_OVERFLOW.
17730
17731 2007-01-29  Janis Johnson  <janis187@us.ibm.com>
17732
17733         * config/dfp-bit.c: Add parameterized support for fp exceptions.
17734         * config/dfp-bit.h: Ditto.
17735
17736 2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17737
17738         * c-decl.c (pop_scope): Replace warnings with call to
17739         warn_for_unused_label.
17740         * c-common.h (warn_for_unused_label): Declare.
17741         * c-common.c (warn_for_unused_label): Define.
17742
17743 2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17744
17745         * tree-optimize.c (update_inlined_to_pointers): Delete unused
17746         function.
17747
17748 2007-01-29  Janis Johnson  <janis187@us.ibm.com>
17749
17750         * Makefile.in (USER_H): Remove decfloat.h.
17751         * ginclude/decfloat.h: Delete, moving contents to ...
17752         * ginclude/float.h: Add support for decimal floating point,
17753         guarded by __STDC_WANT_DEC_FP__.
17754
17755 2007-01-29  Mike Stump  <mrs@apple.com>
17756
17757         * doc/gccint.texi (Top): Rename Loop Representation to Loop
17758         Analysis and Representation to resolve case insensitive conflict.
17759         * doc/loop.texi (Loop Analysis and Representation): Likewise.
17760
17761 2007-01-28  Daniel Berlin  <dberlin@dberlin.org>
17762
17763         * tree.h (struct tree_memory_tag): Add aliases member.
17764         (MTAG_ALIASES): New macro.
17765         * tree-ssa-alias.c (alias_bitmap_obstack): New variable.
17766         (add_may_alias): Remove pointer-set. Update for may_aliases being
17767         a bitmap.
17768         (mark_aliases_call_clobbered): Update for may_aliases being a
17769         bitmap.
17770         (compute_tag_properties): Ditto.
17771         (create_partition_for): Ditto.
17772         (compute_memory_partitions): Ditto.
17773         (dump_may_aliases_for): Ditto.
17774         (is_aliased_with): Ditto.
17775         (add_may_alias_for_new_tag): Ditto.
17776         (rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
17777         (compute_is_aliased): New function.
17778         (compute_may_aliases): Call compute_is_aliased).
17779         (init_alias_info): Initialize alias_bitmap_obstack.
17780         (union_alias_set_into): New function.
17781         (compute_flow_sensitive_aliasing): Use union_aliases_into.
17782         (have_common_aliases_p): Rewrite to take two bitmaps and use
17783         intersection.
17784         (compute_flow_insensitive_aliasing): Stop using pointer-sets.
17785         Update for bitmaps.
17786         (finalize_ref_all_pointers): Update for add_may_alias changes.
17787         (new_type_alias): Ditto.
17788         * tree-flow-inline.h (may_aliases): Return a bitmap.
17789         * tree-dfa.c (dump_variable): Check for MTAG_P'ness.
17790         * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
17791         may_aliases being a bitmap.
17792         * tree-flow.h (struct var_ann_d): Remove may_aliases member.
17793         may_aliases now returns a bitmap.
17794         * tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
17795         being a bitmap.
17796         * tree-ssa-operands.c (add_virtual_operand): Update for
17797         may_aliases being a bitmap.
17798
17799 2007-01-29  Daniel Berlin  <dberlin@dberlin.org>
17800
17801         PR tree-optimization/30630
17802         * tree-ssa-structalias.c (do_complex_constraint): Mark correct
17803         variable as changed.
17804
17805 2007-01-29  Simon Martin  <simartin@users.sourceforge.net>
17806
17807         PR c++/28266
17808         * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
17809         expanded only once even if an error occurs.
17810
17811 2007-01-29  Ben Elliston  <bje@au.ibm.com>
17812
17813         * gcov-io.h (__gcov_indirect_call_profiler): Declare.
17814         (__gcov_average_profiler): Likewise.
17815         (__gcov_ior_profiler): Likewise.
17816         (__gcov_merge_ior): Likewise.
17817
17818 2007-01-28  Jan Hubicka  <jh@suse.cz>
17819
17820         * builtins.c (expand_builtin_memset): Fix typo in my last patch.
17821         * value-prof.c (stringop_block_profile): Likewise.
17822
17823 2007-01-28  Jan Hubicka  <jh@suse.cz>
17824
17825         * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall):
17826         Add variant handling histograms; add wrapper.
17827         (clear_storage_via_libcall): Export.
17828         (emit_block_move_hints): Break out from ...; add histograms.
17829         (emit_block_move): ... this one.
17830         (clear_storage_hints): Break out from ...; add histograms.
17831         (clear_storage): ... this one.
17832         (set_storage_via_memset): Handle histogram.
17833         * expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
17834         (clear_storage_hints, clear_storage_via_libcall): Declare.
17835         (set_storage_via_setmem): Update prototype.
17836         * doc/md.texi (movmem, setmem): Document new arguments.
17837
17838         * value-prof.c (dump_histogram_value, tree_find_values_to_profile):
17839         Add new histograms.
17840         (stringop_block_profile): New global function.
17841         (tree_stringops_values_to_profile): Profile block size and alignment.
17842         * value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
17843         HIST_TYPE_IOR.
17844         (struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
17845         (stringop_block_profile): Declare.
17846         * builtins.c: Include value-prof.h.
17847         (expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
17848         * gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
17849         (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
17850         (GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
17851         * profile.c (instrument_values): Add new counters.
17852         * cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
17853         calls.
17854         * tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
17855         (tree_init_edge_profiler): Build new profilers.
17856         (tree_gen_average_profiler, tree_gen_ior_profiler): New.
17857         (pass_tree_profile): Add dump.
17858         (tree_profile_hooks): Update.
17859         * Makefile.in (LIBGCOV): Add new constants.
17860         * libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
17861         __gcov_ior_profiler): New.
17862         * i386.md (movmem/setmem expanders): Add new optional arguments.
17863
17864 2007-01-28  David Edelsohn  <edelsohn@gnu.org>
17865
17866         * doc/md.texi (Standard Pattern Names): Document blockage pattern.
17867
17868 2007-01-28  Zdenek Dvorak <dvorakz@suse.cz>
17869
17870         * tree-ssa-loop-unswitch.c: Include tree-inline.h.
17871         (tree_unswitch_single_loop): Pass eni_size_weights to
17872         tree_num_loop_insns.
17873         * tree-ssa-loop-manip.c: Include tree-inline.h.
17874         (can_unroll_loop_p): Pass eni_size_weights to
17875         tree_num_loop_insns.
17876         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
17877         Pass eni_size_weights to estimate_num_insns.
17878         * tree.h (init_inline_once): Export.
17879         * toplev.c (backend_init): Call init_inline_once.
17880         * cgraphunit.c (cgraph_process_new_functions,
17881         cgraph_analyze_function): Pass eni_inlining_weights to
17882         estimate_num_insns.
17883         * ipa-inline.c (compute_inline_parameters): Ditto.
17884         * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
17885         to estimate_num_insns.
17886         (try_unroll_loop_completely): Pass eni_size_weights to
17887         tree_num_loop_insns.
17888         * tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
17889         ot estimate_num_insns.
17890         * tree-ssa-loop-prefetch.c: Include tree-inline.h.
17891         (loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
17892         * tree-inline.c (eni_inlining_weights, eni_size_weights,
17893         eni_time_weights): New variables.
17894         (init_inline_once): Initialize them.
17895         (struct eni_data): Mew.
17896         (estimate_num_insns_1, estimate_num_insns): Use weights.
17897         * tree-inline.h (struct eni_weights_d): New.
17898         (eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
17899         (estimate_num_insns): Declaration changed.
17900         * cfgloop.h (tree_num_loop_insns): Declaration changed.
17901         * Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
17902         tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.
17903
17904 2007-01-28  Zdenek Dvorak <dvorakz@suse.cz>
17905
17906         * tree-data-ref.c (conflict_fn): Assert that the number of affine
17907         relations in the conflict function is valid.
17908
17909 2007-01-27  Ian Lance Taylor  <iant@google.com>
17910
17911         * common.opt: Add fstrict-overflow.
17912         * opts.c (decode_options): Set flag_strict_overflow if -O2.
17913         * flags.h (TYPE_OVERFLOW_WRAPS): Define.
17914         (TYPE_OVERFLOW_UNDEFINED): Define.
17915         (TYPE_OVERFLOW_TRAPS): Define.  This replaces TYPE_TRAP_SIGNED.
17916         Replace all uses.
17917         * tree.h (TYPE_TRAP_SIGNED): Don't define.
17918         * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
17919         (fold_negate_expr): Likewise.
17920         (make_range): Likewise.
17921         (extract_muldiv_1): Likewise.
17922         (maybe_canonicalize_comparison): Likewise.
17923         (fold_comparison): Likewise.
17924         (fold_binary): Likewise.
17925         (tree_expr_nonnegative_p): Likewise.
17926         (tree_expr_nonzero_p): Likewise.
17927         * tree-vrp.c (compare_values): Likewise.
17928         (extract_range_from_binary_expr): Likewise.
17929         (extract_range_from_unary_expr): Likewise.
17930         * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
17931         Likewise.
17932         (nowrap_type_p): Likewise.
17933         * tree-scalar-evolution.c (simple_iv): Likewise.
17934         * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
17935         (build_range_check): Likewise.
17936         (extract_muldiv_1): Likewise.
17937         (fold_comparison): Likewise.
17938         * tree-vrp.c (vrp_int_const_binop): Likewise.
17939         (extract_range_from_unary_expr): Likewise.
17940         * convert.c (convert_to_integer): Likewise.
17941         * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
17942         (fold_comparison): Likewise.
17943         (fold_binary): Likewise.
17944         * optabs.c (optab_for_tree_code): Likewise.
17945         * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
17946         * simplify-rtx.c (simplify_const_relational_operation): Check
17947         flag_strict_overflow and flag_trapv.
17948         (simplify_const_relational_operation): Likewise.
17949         * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
17950         (Optimize Options): Add -fstrict-overflow to -O2 list.  Document
17951         -fstrict-overflow.
17952
17953 2007-01-27  Roger Sayle  <roger@eyesopen.com>
17954
17955         * tree.c (tree_fold_gcd): Delete.
17956         * tree.h (tree_fold_gcd): Remove prototype.
17957         * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
17958         test whether one constant integer is a multiple of another.  Instead
17959         call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
17960         * fold-const.c (multiple_of_p):  We've determined both TOP and
17961         BOTTOM are integer constants so we can call int_const_binop directly
17962         instead of the more generic const_binop.
17963
17964 2007-01-27  Roger Sayle  <roger@eyesopen.com>
17965
17966         * fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and
17967         1*X check that the constant hasn't overflowed, to preserve the
17968         TREE_OVERFLOW bit.
17969         (round_up): Provide an efficient implementation when rouding-up an
17970         INTEGER_CST to a power-of-two.
17971
17972 2007-01-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17973
17974         * doc/sourcebuild.texi: Add comma for clarity.
17975         * doc/extend.texi: Fix some typos.
17976         * doc/passes.texi: Likewise.
17977         * doc/cppinternals.texi: Likewise.
17978         * doc/c-tree.texi: Likewise.
17979         * doc/tree-ssa.texi: Likewise.
17980         * doc/install.texi: Likewise.
17981
17982 2007-01-27  Jan Hubicka  <jh@suse.cz>
17983
17984         * tree-sra.c (sra_walk_function): Don't rely on aliases being build.
17985         (pass_sra): Do not require alias information.
17986         * passes.c (init_optimization_passes): Add SRA
17987
17988 2007-01-27  Steven Bosscher  <steven@gcc.gnu.org>
17989
17990         * tracer.c (rest_of_handle_tracer): We already cleaned
17991         up the CFG in tracer() so don't do it here again.
17992         * cfgcleanup.c (rest_of_handle_jump2): Don't repeat
17993         cleanup_cfg here, either.  And don't call renumber_insns.
17994
17995         * cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END
17996         and BB_HEAD are in the insn stream here.  Instead make sure
17997         that BB_INSN is valid on all insns.  Also, do check here that
17998         there are no pending branch predictions...
17999         (rtl_verify_flow_info): ...instead of doing it here.  Checks
18000         for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to
18001         here.
18002
18003 2007-01-26  Roger Sayle  <roger@eyesopen.com>
18004
18005         * config/i386/i386.c (ix86_swap_binary_operands_p): New helper
18006         function to simplify/factorize operand order canonicalization.
18007         (ix86_fixup_binary_operands): Reorganize using the above function.
18008         (ix86_binary_operator_ok): Likewise.
18009
18010 2007-01-27  Jakub Jelinek  <jakub@redhat.com>
18011
18012         * genattrtab.c (struct attr_value_list, insn_code_values): Move to
18013         file scope from optimize_attrs.
18014         (simplify_test_exp): If insn_code_values is not NULL, use it to speed
18015         up search.
18016         (optimize_attrs): Clear insn_code_values after freeing it.
18017
18018 2007-01-26  Zdenek Dvorak <dvorakz@suse.cz>
18019
18020         * tree-ssa-address.c (create_mem_ref): Remove ", bsi" from
18021         a parts.base assignment.
18022
18023 2007-01-26  Zdenek Dvorak <dvorakz@suse.cz>
18024
18025         * tree-data-ref.c (dump_subscript): Use dump_conflict_function.
18026         (compute_subscript_distance, initialize_data_dependence_relation,
18027         finalize_ddr_dependent, analyze_ziv_subscript,
18028         analyze_siv_subscript_cst_affine,
18029         compute_overlap_steps_for_affine_univar,
18030         compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
18031         analyze_siv_subscript, analyze_miv_subscript,
18032         analyze_overlapping_iterations, subscript_dependence_tester_1,
18033         compute_self_dependence, free_dependence_relation): Work
18034         with affine_fn instead of chrecs.
18035         (dump_affine_function, dump_conflict_function, affine_function_equal_p,
18036         common_affine_function, affine_function_base,
18037         affine_function_constant_p, affine_fn_op, affine_fn_plus,
18038         affine_fn_minus, affine_fn_free, conflict_fn_not_known,
18039         conflict_fn_no_dependence, free_conflict_function, free_subscripts,
18040         conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
18041         (all_chrecs_equal_p): Removed.
18042         * tree-data-ref.h (affine_fn, conflict_function): New types.
18043         (struct subscript): Change type of conflicting_iterations_in_a
18044         and conflicting_iterations_in_b.
18045
18046 2007-01-26  Steve Ellcey  <sje@cup.hp.com>
18047
18048         PR other/30182
18049         * config/pa/pa.h (TARGET_HPUX_11): New.
18050         * config/pa/pa-hpux11.h (TARGET_HPUX_11): New.
18051         * config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11.
18052
18053 2007-01-26  Daniel Berlin  <dberlin@dberlin.org>
18054         Richard Guenther  <rguenther@suse.de>
18055
18056         * tree-ssa-structalias.c (solve_graph): Handle case
18057         we merged the variable to another.
18058
18059 2007-01-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18060
18061         * builtins.c (fold_builtin_1): Treat ccos and ccosh as 'even'
18062         functions.
18063
18064         * fold-const.c (negate_mathfn_p): Treat casin, casinh, catan,
18065         catanh, cproj, csin, csinh, ctan and ctanh as 'odd' functions.
18066
18067 2007-01-25  DJ Delorie  <dj@redhat.com>
18068
18069         * config/m32c/m32c.c (m32c_cannot_change_mode_class): We don't
18070         allow changes to modes which don't fit in those registers.
18071
18072         * reload1.c (choose_reload_regs): Check for invalid subregs before
18073         computing their locations, not after.
18074
18075 2007-01-25  Geoffrey Keating  <geoffk@apple.com>
18076
18077         PR 25127
18078         * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
18079         save Altivec registers in an eh_return function.
18080         (compute_vrsave_mask): Likewise.
18081         (rs6000_stack_info): Correct AIX/Darwin stack alignment computation
18082         for saving Altivec registers.
18083         (rs6000_emit_prologue): Don't allocate stack twice in
18084         eh_return function.  Correct expected value of altivec_save_offset
18085         when using save_world.  Describe save of R0 to stack when using
18086         save_world.  Describe stack pointer adjustment when using
18087         save_world.  Remove duplicated eh_return parameter register saving.
18088         Update sp_offset variable after save_world.
18089         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
18090         darwin-world.asm.
18091         (LIB2FUNCS_EXTRA): Add darwin-world.asm.
18092         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
18093         implies Altivec.
18094
18095 2007-01-25  Steve Ellcey  <sje@cup.hp.com>
18096
18097         * config.gcc (ia64*-*-hpux*): Make posix threads the default.
18098
18099 2007-01-25  Steve Ellcey  <sje@cup.hp.com>
18100
18101         PR other/30182
18102         * config/pa/pa.c (pa_init_builtins): Set asm names for finite routines.
18103         * config/ia64/ia64.c (ia64_init_builtins):  Ditto.
18104
18105 2007-01-25  Richard Guenther  <rguenther@suse.de>
18106
18107         * doc/invoke.texi (-Wcoverage-mismatch): Document.
18108         * common.opt (-Wcoverage-mismatch): New warning option.
18109         * coverage.c (get_coverage_counts): Ignore coverage mismatch
18110         if -Wcoverage-mismatch is given.
18111
18112 2007-01-25  Razya Ladelsky  <razya@il.ibm.com>
18113
18114         * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA.
18115         (ipcp_driver): Change to static definition.
18116         Add dumping of the ifunctions.
18117         (constant_val_insert): Remove unused parameter. Support for SSA.
18118         (ipcp_propagate_const): Support for SSA.
18119         (ipcp_profile_bb_print): Print only analyzed nodes.
18120         (ipcp_replace_map_create): Remove support for Fortran constant
18121         for now.
18122         * ipa-prop.c (ipa_method_modify_stmt,
18123         ipa_callsite_compute_param): Support for SSA.
18124         * ipa-prop.h (ipcp_driver): Remove declaration.
18125         (IS_VALID_TREE_MAP_INDEX): Add define.
18126
18127 2007-01-24  Geoffrey Keating  <geoffk@apple.com>
18128
18129         * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
18130
18131 2007-01-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18132
18133         PR middle-end/30447
18134         * builtins.c (fold_builtin_cabs): Use MPFR to evaluate a
18135         constant argument to cabs and do it without checking for
18136         -funsafe-math-optimizations.
18137
18138 2007-01-24  Douglas Gregor  <dgregor@osl.iu.edu>
18139
18140         * c-common.h (RID_FIRST_CXX0X): New.
18141         (RID_LAST_CXX0X): New.
18142         * c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered
18143         by -Wall.
18144         * c.opt (Wc++0x-compat): New.
18145         * doc/invoke.texi (-Wc++0x-compat): Document.
18146
18147 2007-01-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18148
18149         * builtins.c (fold_builtin_carg): New.
18150         (fold_builtin_1): Use it.
18151
18152 2007-01-24  Jan Hubicka  <jh@suse.cz>
18153
18154         * ipa-inline.c (cgraph_decide_inlining): Initialize initial_insns.
18155
18156         * ipa-inline.c (initial_insns, max_insns): Delete.
18157         (compute_max_insns): New function.
18158         (cgraph_decide_inlining_of_small_function): Use it; take minimal
18159         amount of insns as base for code growth.
18160         (cgraph_decide_inlining): Make initial_insns local; do not compute
18161         max_insns.
18162         * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60.
18163         * doc/invoke.texi (inline-unit-growth): Update docs.
18164
18165 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
18166
18167         * config/i386/i386.h (x86_cmpxchg16b): Remove const.
18168         (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b.
18169         * config/i386/i386.c (x86_cmpxchg16b): Remove const.
18170         (override_options): Add PTA_CX16 flag.  Set x86_cmpxchg16b
18171         for CPUs that have PTA_CX16 set.
18172
18173         PR middle-end/27416
18174         * gimplify.c (omp_check_private): New function.
18175         (gimplify_scan_omp_clauses): Use it for
18176         firstprivate/lastprivate/reduction.
18177
18178         PR middle-end/30494
18179         * gimplify.c (omp_add_variable): Don't call omp_notice_variable
18180         on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
18181
18182         PR middle-end/30421
18183         * omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
18184         If lower_lastprivate_clauses emits some statements, append them
18185         to dlist rather than body_p and to body_p append an initializer.
18186         (lower_omp_for): Adjust caller.
18187
18188 2007-01-24  Steve Ellcey  <sje@cup.hp.com>
18189
18190         * target.h (globalize_decl_name): New.
18191         * target-def.h (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
18192         * output.h (default_globalize_decl_name): New.
18193         * varasm.c (asm_output_bss): Use globalize_decl_name instead of
18194         globalize_label.
18195         (globalize_decl): Ditto.
18196         (default_globalize_decl_name): New.
18197         * config/ia64/ia64.c (ia64_globalize_decl_name): New.
18198         (ia64_handle_version_id_attribute): New.
18199         (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
18200         (ia64_asm_output_external): Use globalize_decl_name instead
18201         of globalize_label.
18202         * doc/extend.texi (version_id): New pragma.
18203         * doc/tm.texi (ARGET_ASM_GLOBALIZE_DECL_NAME): New target hook.
18204
18205 2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
18206
18207         * unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with
18208         _uleb128_t and _Unwind_SWord with _sleb128_t.
18209         * unwind-dw2.c (extract_cie_info, execute_stack_op,
18210         execute_cfa_program, uw_frame_state_for, uw_update_context_1):
18211         Likewise.
18212         * unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise.
18213         * unwind-pe.h (read_uleb128, read_sleb128,
18214         read_encoded_value_with_base): Likewise.
18215         * unwind-generic.h: Define _sleb128_t and _uleb128_t types.
18216
18217 2007-01-24  Richard Guenther  <rguenther@suse.de>
18218
18219         * builtins.c (expand_builtin_cexpi): Get the fndecl
18220         for cexp in the correct way.
18221
18222 2007-01-24  Jan Hubicka  <jh@suse.cz>
18223
18224         * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS
18225         of calls.
18226
18227 2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
18228
18229         * c-cppbuiltin.c (builtin_define_type_sizeof): New function.
18230         (c_cpp_builtins): New builtin macros: __SIZEOF_INT__, __SIZEOF_LONG__,
18231         __SIZEOF_LONG_LONG__, __SIZEOF_SHORT__, __SIZEOF_POINTER__,
18232         __SIZEOF_FLOAT__, __SIZEOF_DOUBLE__, __SIZEOF_LONG_DOUBLE__,
18233         __SIZEOF_SIZE_T__, __SIZEOF_WCHAR_T__, __SIZEOF_WINT_T__ and
18234         __SIZEOF_PTRDIFF_T__.
18235         * doc/cpp.texi: Documentation for the new builtin macros added.
18236
18237 2007-01-24  Uros Bizjak  <ubizjak@gmail.com>
18238
18239         * config/i386/i386.md (tanxf2, tan<mode>2, atan<mode>2, log<mode>2,
18240         log10<mode>2, log2<mode>2, expxf2, exp10xf2, exp2xf2): Use op2
18241         instead of operands[2] to avoid access past the end of array.
18242
18243 2007-01-24  Richard Sandiford  <richard@codesourcery.com>
18244
18245         * reload1.c (emit_reload_insns): Pass the reload register
18246         for a non-spill output reload through forget_old_reloads_1.
18247
18248 2007-01-23  Joseph Myers  <joseph@codesourcery.com>
18249
18250         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
18251         _SOFT_DOUBLE if doubles use software floating-point.
18252         * config/rs6000/libgcc-ppc-glibc.ver: Export additional long
18253         double functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
18254         * config/rs6000/darwin-ldouble.c: Also compile functions for
18255         hard-float without FPRs.  Use fmsub function for all __NO_FPRS__
18256         cases.  Compile extra functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
18257         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove
18258         commented-out long double override.
18259         (CPP_LONGDOUBLE_DEFAULT_SPEC): Likewise.
18260         * config/rs6000/eabispe.h: Likewise.
18261         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
18262         long double for non-SPE.
18263         (rs6000_handle_option): Likewise.
18264         (invalid_e500_subreg): Disallow more subregs involding DImode,
18265         DFmode, TImode or TFmode.
18266         (rs6000_legitimate_offset_address_p): Check TFmode offsets for
18267         E500 double.
18268         (legitimate_lo_sum_address_p): Also check for TFmode for E500
18269         double.
18270         (rs6000_legitimize_address): Also handle TFmode for E500 double.
18271         (rs6000_legitimize_reload_address): Also handle TFmode for E500
18272         double.
18273         (rs6000_legitimate_address): Also check for TFmode for E500
18274         double.
18275         (rs6000_emit_move): Use DFmode subregs of TFmode for E500 double.
18276         (spe_build_register_parallel): Handle TFmode and TCmode.
18277         (rs6000_spe_function_arg): Handle TFmode and TCmode for E500
18278         double.
18279         (function_arg): Handle TFmode and TCmode for E500 double.
18280         (rs6000_init_libfuncs): Initialize extra libfuncs for soft double
18281         in general.
18282         (print_operand): Handle TFmode and TImode for %y.
18283         (rs6000_generate_compare): Handle TFmode comparisons for E500
18284         double.
18285         (spe_func_has_64bit_regs_p): Check for TFmode for E500 double.
18286         (rs6000_function_value): Handle TFmode and TCmode for E500 double.
18287         (rs6000_libcall_value): Handle TFmode and TCmode for E500 double.
18288         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Check for
18289         TFmode for E500 double.
18290         * config/rs6000/rs6000.md (FP): Allow TF for E500 double.
18291         (floatsidf2): Enable for E500 double.
18292         (movtf_softfloat): Use rs6000_nonimmediate_operand.
18293         (extenddftf2): Change to extenddftf2_fprs.
18294         (extenddftf2): Call gen_spe_extenddftf2 or gen_extenddftf2_fprs
18295         depending on TARGET_E500_DOUBLE.
18296         (extendsftf2): Enable for E500 double.
18297         (trunctfdf2): Enable for E500 double.
18298         (trunctfsf2): Change to trunctfsf2_fprs.
18299         (trunctfsf2): Call gen_spe_trunctfsf2 or gen_trunctfsf2_fprs
18300         depending on TARGET_E500_DOUBLE.
18301         (floatsitf2): Enable for E500 double.
18302         (fix_trunctfsi2): Change to fix_trunctfsi2_fprs.
18303         (fix_trunctfsi2): Call gen_spe_fix_trunctfsi2 or
18304         gen_fix_trunctfsi2_fprs depending on TARGET_E500_DOUBLE.
18305         (negtf2): Change to negtf2_internal.
18306         (negtf2): New expander.
18307         (abstf2): Enable for E500 double.  Call gen_spe_abstf2_tst,
18308         gen_spe_abstf2_cmp or gen_abstf2_internal depending on
18309         TARGET_E500_DOUBLE and flag_unsafe_math_optimizations.
18310         (movdi_internal32): Use rs6000_nonimmediate_operand.
18311         (unnamed splitter): Likewise.
18312         * config/rs6000/spe.md (CMPTFEQ_GPR, TSTTFEQ_GPR, CMPTFGT_GPR,
18313         TSTTFGT_GPR, CMPTFLT_GPR, TSTTFLT_GPR): New unspecs.
18314         (SPE64TF, DITI): New mode macros.
18315         (frob_df_di): Change to frob_<SPE64:mode>_<DITI:mode>; allow more
18316         modes.
18317         (frob_tf_ti): New.
18318         (frob_<mode>_di_2): New.
18319         (frob_tf_di_8_2): New.
18320         (frob_di_df): Change to frob_di_<mode>; allow more modes.
18321         (frob_ti_tf): New.
18322         (frob_di_df_2): Change to frob_<DITI:mode>_<SPE64:mode>_2; allow
18323         more modes.
18324         (frob_ti_<mode>_8_2): New.
18325         (frob_ti_tf_2): New.
18326         (mov_si<mode>_e500_subreg0, mov_si<mode>_e500_subreg0_2,
18327         mov_si<mode>_e500_subreg4, mov_si<mode>_e500_subreg4_2): Allow
18328         TFmode.
18329         (mov_sitf_e500_subreg8, mov_sitf_e500_subreg8_2,
18330         mov_sitf_e500_subreg12, mov_sitf_e500_subreg12_2): New.
18331         (spe_trunctfdf2_internal1, spe_trunctfsf2, spe_extenddftf2,
18332         spe_fix_trunctfsi2, spe_fix_trunctfsi2_internal,
18333         spe_negtf2_internal, spe_abstf2_cmp, spe_abstf2_tst): New.
18334         (cmptfeq_gpr, tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr,
18335         tsttflt_gp): New.
18336
18337 2007-01-23  Ian Lance Taylor  <iant@google.com>
18338
18339         * Makefile.in (OBJS-common): Reformat, alphabetize, but put
18340         insn-*.o first.
18341         (OBJS-archive): Reformat, alphabetize.
18342         (OBJS): Change out_object_file to OBJS-md.
18343
18344 2007-01-23  Uros Bizjak  <ubizjak@gmail.com>
18345
18346         * config/i386/i386.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
18347         JUMP_P and CALL_P predicates where applicable.
18348         * config/i386/i386.c: Ditto.
18349         * config/i386/i386.md: Ditto.
18350         * config/i386/mmx.md: Ditto.
18351         * config/i386/predicates.md: Ditto.
18352
18353 2007-01-22  Andreas Schwab  <schwab@suse.de>
18354
18355         * config/m68k/m68k.h: Fix comment.
18356
18357 2007-01-22  Jan Hubicka  <jh@suse.cz>
18358
18359         * passes.c (init_optimization_passes): Do not rerun
18360         pass_early_warn_uninitialized.
18361
18362 2007-01-22  Richard Guenther  <rguenther@suse.de>
18363
18364         PR tree-optimization/30038
18365         * tree-ssa-math-opts.c (maybe_record_sincos): New static helper
18366         function.
18367         (execute_cse_sincos_1): Likewise.
18368         (execute_cse_sincos): Likewise.
18369         (gate_cse_sincos): Likewise.
18370         (pass_cse_sincos): New pass CSEing sin() and cos() calls using
18371         the cexpi() canonicalization of sincos().
18372         * tree-pass.h (pass_cse_sincos): Declare.
18373         * passes.c (init_optimization_passes): New pass pas_cse_sincos.
18374
18375 2007-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
18376
18377         PR rtl-optimization/29329
18378         * combine.c (replaced_rhs_insn): Rename to i2mod.
18379         (replaced_rhs_value): Rename to i2mod_new_rhs.
18380         (i2mod_old_rhs): New global variable.
18381         (combine_instructions): Adjust for above change.  Save a copy of
18382         the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
18383         note are substituted in the second instruction.
18384         (distribute_notes) <REG_DEAD>: Adjust for above change.  Do not
18385         ditch the note if it pertains to the second eliminated register
18386         and this register is mentioned in i2mod_old_rhs.
18387
18388         Revert:
18389         2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
18390
18391         * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
18392         the insn to which the note was originally attached.
18393
18394 2007-01-21  Jan Hubicka  <jh@suse.cz>
18395
18396         * ipa-inline.c (inlining_mode): Comment, move up.
18397         (cgraph_decide_inlining_incrementally): Do not perform inlining
18398         itself; fix handling of flattening of self recursive functions.
18399         (cgraph_find_cycles): Remove.
18400         (cgraph_flatten_node): Remove.
18401         (cgraph_decide_inlining): Use incremental inliner to handle flattening.
18402         (try_inline): New function.
18403         (cgraph_early_inlining): Update call of
18404         cgraph_decide_inlining_incrementally.  Apply inlining here.
18405         (apply_inline): Update call of cgraph_decide_inlining_incrementally.
18406
18407 2007-01-21  Dirk Mueller  <dmueller@suse.de>
18408
18409         PR bootstrap/30511
18410         * tree-vrp.c (check_array_bounds): do not warn
18411         about ADDR_EXPR's of ARRAY_REF's which are immediately
18412         used in binary expressions.
18413
18414 2007-01-21  Ira Rosen  <irar@il.ibm.com>
18415
18416         * tree-vectorizer.h (struct _stmt_vec_info): Add new field
18417         read_write_dep and macros for its access.
18418         * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
18419         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove
18420         argument, call vect_check_interleaving for every independent pair of
18421         data-refs. Mark loads that access the same memory location as a store
18422         in the loop.
18423         (vect_check_dependences): Remove.
18424         (vect_analyze_data_ref_dependences): Remove  vect_check_dependences
18425         call, fix the call to vect_analyze_data_ref_dependence.
18426         (vect_analyze_data_ref_access): For statements that access the same
18427         data-ref, check that they are not stores; for loads, check that there
18428         is no store that access the same location.
18429
18430 2007-01-20  Roger Sayle  <roger@eyesopen.com>
18431             Joseph Myers  <joseph@codesourcery.com>
18432
18433         * doc/invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox.
18434         (-fdump-rtl-stack): Likewise.
18435         (-fno-signed-zeros): Use @minus{} for a minus sign.  Correct typo.
18436         (-mcheck-zero-division, -mcpu): Fix under/overfull hbox.
18437         (-mpt-fixed): Use @minus{} for minus sign.
18438         (Using Precompiled Headers): Fix under/overfull hbox.
18439
18440 2007-01-20  Jan Hubicka  <jh@suse.cz>
18441
18442         * tree-flow.h (struct stmt_ann_d): Move references_memory to proper
18443         place within annotation.
18444
18445 2007-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18446
18447         * pa.c (output_move_double): Change array size of xoperands to 4.
18448
18449 2007-01-20  Jan Hubicka  <jh@suse.cz>
18450
18451         * tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL
18452         as temporary.
18453
18454 2007-01-19  Ian Lance Taylor  <iant@google.com>
18455
18456         * expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast
18457         constant to unsigned HOST_WIDE_INT before negating.
18458
18459 2007-01-19  Ian Lance Taylor  <iant@google.com>
18460
18461         * tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field
18462         to unsigned.
18463         (VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison.
18464         (VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
18465         (SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise.
18466         (SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise.
18467         (SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
18468         (realloc_vdef, realloc_vuse): Change second parameter to
18469         unsigned.
18470         (ssa_operand_iterator_d): Change vuse_index and mayuse_index
18471         fields to unsigned.
18472         * tree-ssa-operands.c (realloc_vop): Change num_elem parameter to
18473         unsigned. Change x and lim locals to unsigned.
18474         (realloc_vdef, realloc_vuse): Change num_elem parameter to
18475         unsigned.
18476         (finalize_ssa_vuse_ops): Change old_i local to unsigned.
18477         (copy_virtual_operands): Change i and n locals to unsigned.
18478
18479 2007-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18480
18481         PR middle-end/29335
18482         * builtins.c (fold_builtin_1): Handle builtin fdim.
18483
18484 2007-01-20  Jan Hubicka  <jh@suse.cz>
18485
18486         * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
18487         * tree-ssa-structalias.c (compute_points_to_sets): Do call
18488         init_alias_heapvars.
18489         (init_alias_heapvars): Initialize only when not already initialized.
18490         (delete_alias_heapvars): Set heapvar_for_stmt to NULL.
18491
18492 2007-01-19  Roger Sayle  <roger@eyesopen.com>
18493
18494         * common.opt (fsigned-zeros): New command line option.
18495         * flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
18496         of flag_unsafe_math_optimizations.
18497         * opts.c (set_fast_math_flags): The -ffast-math command line option
18498         implies -fno-signed-zeros.
18499         (fast_math_flags_set_p): Likewise.
18500
18501         * doc/invoke.texi: Document new -fno-signed-zeros option, and update
18502         the documentation of -ffast-math appropriately.  Wrap long lines.
18503
18504 2007-01-19  Steve Ellcey  <sje@cup.hp.com>
18505
18506         * system.h (ASM_MAKE_LABEL_LINKONCE): Poison.
18507         * varasm.c (globalize_decl): Remove ASM_MAKE_LABEL_LINKONCE ifdef.
18508
18509 2007-01-19  Tomas Bily  <tbily@suse.cz>
18510
18511         * cgraphunit.c (cgraph_finalize_function): Updating of pid
18512         * tree-profile.c:
18513         (tree_init_ic_make_global_vars): New function
18514         (tree_init_edge_profiler): call of tree_init_ic_make_global_vars
18515         (tree_gen_ic_profiler): New function
18516         (tree_gen_ic_func_profiler): New function
18517         (tree_profiling): Added calling of tree_gen_ic_func_profiler
18518         (tree_profile_hooks): Added hook for indirec/virtual calls
18519         * value-prof.c (tree_find_values_to_profile): New case for
18520         indirect calls
18521         (tree_values_to_profile): Call for determining indirect/virtual
18522         counters
18523         (tree_indirect_call_to_profile): New function
18524         (tree_ic_transform): New function
18525         (tree_ic): New function
18526         (find_func_by_pid): New function
18527         (init_pid_map): New function
18528         (tree_value_profile_transformations): Added check for
18529         indirect/virtual call transformation
18530         * value-prof.h (enum hist_type): New counter type for
18531         indirect/virtual calls
18532         (profile_hooks): Added new hook for profiling indirect/virtual
18533         calls
18534         * profile.c (instrument_values): New case for indirect/virtual
18535         call added
18536         * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
18537         (GCOV_COUNTER_V_INDIR): New counter type
18538         (GCOV_COUNTER_NAMES): New name of counter "indirect" added
18539         (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
18540         call added
18541         * cgraph.c: Definition of cgraph_max_pid
18542         (cgraph_create_node): Default init of pid attribute
18543         * cgraph.h: Declaration of cgraph_max_pid
18544         (struct cgraph_node): Added pid attribute
18545         * libgcov.c (__gcov_indirect_call_profiler): New function
18546         (__gcov_one_value_profiler_body): New function
18547         (__gcov_one_value_profiler): Body was moved to
18548         __gcov_one_value_profiler_body and calls it
18549
18550 2007-01-19  Basile Starynkevitch  <basile@starynkevitch.net>
18551
18552         * doc/gty.texi (Options): Document the mark_hook option to GTY.
18553         * gengtype.c (write_types_data, write_func_for_structure,
18554         write_types, ggc_wtd, pch_wtd): Add skip_hooks to
18555         write_types_data, ggc_wtd, pch_wtd for processing mark_hook.
18556         (walk_type, write_func_for_structure): Generate the mark_hook if
18557         needed.
18558
18559 2007-01-19  Jan Hubicka  <jh@suse.cz>
18560
18561         * ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of
18562         'early' argument take inlining mode argument specifying whether to
18563         inline for size/speeed or all functions; add support for flattening;
18564         improve dumpting.
18565         (cgraph_early_inlining): Update call of decide_inlining_incrementally.
18566
18567 2007-01-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18568
18569         PR c++/17947
18570         * toplev.c (warn_deprecated_use): Use %qD instead of %qs to print
18571         the name of the declared identifier.
18572
18573 2007-01-19  Dirk Mueller  <dmueller@suse.de>
18574
18575         * config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
18576         result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
18577         duplicate evaluation.
18578
18579 2007-01-19  Uros Bizjak  <ubizjak@gmail.com>
18580
18581         * config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2.
18582         Macroize expander using X87MODEF12 mode macro.  Extend operand 1
18583         to XFMode, use acosxf2 and truncate result to requested mode.
18584         Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
18585         (asin<mode>2): Similarly, with asin expanders.
18586         (*fscalexf4_i387): Rename from *fscalexf4.
18587         (expNcorexf3): New expander.
18588         (expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander.
18589         (exp<mode>2): Rename from expsf2 and expdf2. Macroize expander using
18590         X87MODEF12 mode macro.  Extend operand 1 to XFMode, use expxf2 and
18591         truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable
18592         patterns for SSE math.
18593         (exp10<mode>2): Similarly, with exp10 expanders.
18594         (exp2<mode>2): Similarly, with exp2 expanders.
18595         (expm1<mode>2): Similarly, with expm1 expanders.
18596         (ldexp<mode>3): Similarly, with ldexp expanders.
18597         (log<mode>2, log10<mode>2, log2<mode>2, log1p<mode>2, logb<mode>2):
18598         Use gen_truncxf<mode>2_i387_noop to truncate result.
18599
18600 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
18601
18602         * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32
18603         for ColdFire targets.
18604
18605 2007-01-19  Nathan Sidwell  <nathan@codesourcery.com>
18606             Richard Sandiford  <richard@codesourcery.com>
18607
18608         * config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro.
18609         (INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM.
18610         (__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME.
18611         * config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override.
18612         (M68K_STATIC_CHAIN_REG_NAME): Likewise.
18613         * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
18614
18615 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
18616
18617         * config/m68k/m68k.md (adddi_dilshr32): Rename to...
18618         (*adddi_dilshr32): ...this.  Fix formatting.  Remove commented-out
18619         non-canonical pattern.  Restrict to !TARGET_COLDFIRE.
18620         (*adddi_dilshr32_cf): New pattern.
18621         (adddi3, subdi3): Remove first alternatives.
18622
18623 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
18624
18625         * config/m68k/m68k.c (notice_update_cc): If an SFmode move is
18626         implemented using move.l, do not use its cc result for floating-point
18627         comparisons.
18628
18629 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
18630
18631         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint
18632         from accepting 's' constraints if flag_pic.
18633
18634 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
18635
18636         * config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt)
18637         (bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev)
18638         (bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change
18639         condition from TARGET_68881 to TARGET_HARD_FLOAT.
18640
18641 2007-01-19  Sandra Loosemore  <sandra@codesourcery.com>
18642
18643         * longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
18644         ColdFire alternatives.
18645         * config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
18646         * config/m68k/m68k.md (clzsi2):  Define for ColdFire
18647         architectures that support ff1 instruction.
18648
18649 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
18650             Julian Brown  <julian@codesourcery.com>
18651
18652         * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case.
18653         * config/m68k/m68k.md (*movsi_cfv4): Fold into...
18654         (*movsi_cf): ...here.  Remove unnecessary 'R' from 'Rg'.
18655         Add commentary.
18656
18657 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
18658
18659         * config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
18660         and return a bool.
18661         (output_move_const_into_data_reg, output_move_simode_const): Delete.
18662         * config/m68k/m68k.c (const_method, const_int_cost): Take a
18663         HOST_WIDE_INT instead of an rtx.
18664         (m68k_rtx_costs): Update call accordingly.
18665         (output_move_const_into_data_reg): Likewise.  Fix formatting.
18666         (valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
18667         Return a bool.
18668         (output_move_simode_const): Update calls after above changes.
18669         Rework to use automatic variables and predicates like MEM_P.
18670         * config/m68k/m68k.md (pushexthisi_const): Update call to
18671         valid_mov3q_const.
18672
18673 2007-01-19  Dirk Mueller  <dmueller@suse.de>
18674
18675         * tree-ssa-alias.c (perform_var_substitution): Fix typo
18676         in dump_flags test.
18677
18678 2007-01-19  Richard Guenther  <rguenther@suse.de>
18679
18680         * builtins.c (expand_builtin_cexpi): Fall back to expanding
18681         via cexp in case sincos is not available.
18682
18683 2007-01-19  Richard Guenther  <rguenther@suse.de>
18684
18685         * doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
18686         * defaults.h (TARGET_HAS_SINCOS): Default to off.
18687         * config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
18688         * config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
18689         * config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
18690         * config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
18691         * config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
18692         * config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.
18693
18694 2007-01-19  Uros Bizjak  <ubizjak@gmail.com>
18695
18696         * config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387):
18697         New insn patterns.
18698         (atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns.
18699         (atan2xf3): Directly generate RTL pattern.
18700         (atan2<mode>3): Rename from atan2sf3 and atan2df3 and macroize insn
18701         patterns using X87MODEF12 mode macro.  Use fpatan_extend<mode>xf3_i387
18702         and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
18703         disable patterns for SSE math.
18704         (atan<mode>2): Rename from atansf2 and atandf2 and macroize insn
18705         patterns using X87MODEF12 mode macro.  Use fpatan_extend<mode>xf3_i387
18706         and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
18707         disable patterns for SSE math.
18708
18709 2007-01-19  Alexandre Oliva  <aoliva@redhat.com>
18710
18711         * libgcc-std.ver: Fix typo in %inherit for GCC_4.3.0.
18712
18713 2007-01-18  Roger Sayle  <roger@eyesopen.com>
18714
18715         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a
18716         VIEW_CONVERT_EXPR to the same type as it's operand.
18717
18718 2007-01-18  David Edelsohn  <edelsohn@gnu.org>
18719
18720         * config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if
18721         configured for long double 128.
18722
18723 2007-01-18  Mike Stump  <mrs@apple.com>
18724
18725         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Fix build
18726         error.
18727
18728 2007-01-18  Michael Meissner  <michael.meissner@amd.com>
18729
18730         * i386.c (ix86_compute_frame_layout): Make fprintf's in #if 0 code
18731         type correct.
18732
18733 2007-01-18  Jan Hubicka  <jh@suse.cz>
18734
18735         * tree-ssa-operands.c (vop_free_bucket_size): Never return value
18736         greater than NUM_VOP_FREE_BUCKETS.
18737
18738 2007-01-18  Daniel Berlin  <dberlin@dberlin.org>
18739
18740         * tree-ssa-structalias.c: Update comments.
18741         (ptabitmap_obstack): Removed.
18742         (pta_obstack): New.
18743         (oldpta_obstack): Ditto.
18744         (stats): Add a few members.
18745         (struct variable_info): Remove node, complex, address_taken, and
18746         indirect_target members. Add oldsolution member.
18747         (new_var_info): Do not initialize removed members.
18748         (constraint_expr_type): Remove INCLUDES.
18749         (constraint_graph): Add size, implicit_preds, rep,
18750         indirect_cycles, eq_rep, label, direct_nodes, and complex members.
18751         (FIRST_REF_NODE): New macro.
18752         (LAST_REF_NODE): Ditto.
18753         (FIRST_ADDR_NODE): Ditto.
18754         (find): New function.
18755         (unite): Ditto.
18756         (dump_constraint): Do not handle INCLUDES.
18757         (insert_into_complex): Do not insert duplicate constraints.
18758         (condense_varmap_nodes): Renamed and rewritten into ...
18759         (merge_node_constraints): This. Also fix bug in handling of
18760         offseted copy constraints.
18761         (clear_edges_for_node): No longer need to deal with preds at all,
18762         or removing associated preds/succs.
18763         (merge_graph_nodes): Deal with indirect_cycles.
18764         Don't deal with predecessors.
18765         (add_implicit_graph_edge): New function.
18766         (add_pred_graph_edge): Ditto.
18767         (add_graph_edge): Don't deal with predecessors.
18768         (build_constraint_graph): Removed.
18769         (build_pred_graph): New function.
18770         (build_succ_graph): Ditto.
18771         (struct scc_info): Removed in_component. Added roots, dfs, and
18772         node_mapping. Remove visited_index, unification_queue.
18773         (scc_visit): Deal with union-find we do now.
18774         Deal with cycles with REF nodes.
18775         (collapse_nodes): Renamed and rewritten to ...
18776         (unify_nodes): This.
18777         (process_unification_queue): Removed.
18778         (topo_visit): Cleanup
18779         (do_da_constraint): Use find.
18780         (do_sd_constraint): Ditto.
18781         (do_ds_constraint): Ditto.
18782         (do_complex_constraint): Ditto.
18783         (init_scc_info): Update for removed and added members.
18784         (find_and_collapse_graph_cycles): Renamed and rewritten into ...
18785         (find_indirect_cycles): This.
18786         (equivalence_class): New variable.
18787         (label_visit): New function.
18788         (perform_variable_substitution): Rewritten.
18789         (free_var_substitution_info): New function.
18790         (find_equivalent_node): Ditto.
18791         (move_complex_constraints): Ditto.
18792         (eliminate_indirect_cycles): Ditto.
18793         (solve_graph): Only propagate changed bits.
18794         Use indirect cycle elimination.
18795         Use find.
18796         (tree_id_t): Rename to tree_vi_t, delete id member, add vi member.
18797         (tree_id_eq): Renamed to ...
18798         (tree_vi_eq): This. Update for member change
18799         (insert_id_for_tree): Renamed and rewritten to ...
18800         (insert_vi_for_tree): This.
18801         (lookup_id_for_tree): Renamed and rewritten to ...
18802         (lookup_vi_for_tree): This.
18803         (get_id_for_tree): Renamed and rewritten to ...
18804         (get_vi_for_tree): Ditto.
18805         (get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree.
18806         (process_constraint): Don't handle INCLUDES.
18807         Remove special ADDRESSOF case.
18808         (find_func_aliases): Rewrite to use vi functions instead of id
18809         ones.
18810         (create_function_info_for): Ditto.
18811         (create_variable_info_for): Ditto.
18812         (intra_create_variable_infos): Ditto.
18813         (merge_smts_into): Ditto.
18814         (find_what_p_points_to): Ditto.
18815         (init_base_vars): Ditto.
18816         (init_alias_vars): Ditto.
18817         (remove_preds_and_fake_succs): New function.
18818         (dump_sa_points_to_info): Dump new stats.
18819         (dump_solution_for_var): Use find.
18820         (set_used_smts): Fix formatting.
18821         (compute_points_to_sets): Updated for new functions.
18822         (ipa_pta_execute): Ditto.
18823
18824 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
18825             Richard Sandiford  <richard@codesourcery.com>
18826
18827         * doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
18828         parallels.
18829         * calls.c (expand_call): If the return value is a PARALLEL,
18830         extract its first member.
18831         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
18832         * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
18833         use FUNCTION_EXTRA_EPILOGUE.
18834         (m68k_function_value): Return a PARALLEL if the return value
18835         is of a pointer type.
18836         * config/m68k/netbsd-elf.h (current_function_returns_pointer)
18837         (FUNCTION_EXTRA_EPILOGUE): Remove.
18838         * config/m68k/m68k.md (D0_REG): New constant.
18839
18840 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
18841
18842         * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
18843         output a NOP for empty epilogues.
18844
18845 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
18846
18847         * config/m68k/m68k.c (m68k_use_return_insn): Update comments
18848         before function.  Extend register save check to include all
18849         registers, not just integer ones.
18850
18851 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
18852
18853         * config/m68k/m68k-protos.h (use_return_insn): Rename to...
18854         (m68k_use_return_insn): ...this.
18855         * config/m68k/m68k.h (USE_RETURN_INSN): Delete.
18856         * config/m68k/m68k.c (use_return_insn): Rename to...
18857         (m68k_use_return_insn): ...this.
18858         * config/m68k/m68k.md (return): Use m68k_use_return_insn instead
18859         of USE_RETURN_INSN.
18860
18861 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
18862
18863         * config/m68k/fpgnulib.c (__truncdfsf2): Implement round to
18864         nearest even, fix denormal rounding overflow.
18865
18866 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
18867
18868         * config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
18869         f%$smove and f%$move.
18870         (movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
18871         (extendsfdf2_cf): Use fdmove instead of f%&move.
18872         (truncdfsf2_cf): Use fsmove instead of f%$smove.
18873         (add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.
18874
18875 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
18876
18877         * config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
18878         GPR<-GPR moves.
18879
18880 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
18881
18882         * real.h (real_format): Add a canonical_nan_lsbs_set field.
18883         (coldfire_single_format): Declare.
18884         (coldfire_double_format): Likewise.
18885         * real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead
18886         of qnan_msb_set to determine the lower bits of a canonical
18887         NaN significand.
18888         (encode_ieee_double): Likewise.
18889         (encode_ieee_quad): Likewise.
18890         (ieee_single_format): Initialize canonical_nan_lsbs_set.
18891         (mips_single_format): Likewise.
18892         (ieee_double_format): Likewise.
18893         (mips_double_format): Likewise.
18894         (ieee_extended_motorola_format): Likewise.
18895         (ieee_extended_intel_96_format): Likewise.
18896         (ieee_extended_intel_128_format): Likewise.
18897         (ieee_extended_intel_96_round_53_format): Likewise.
18898         (ibm_extended_format): Likewise.
18899         (mips_extended_format): Likewise.
18900         (ieee_quad_format): Likewise.
18901         (mips_quad_format): Likewise.
18902         (vax_f_format): Likewise.
18903         (vax_d_format): Likewise.
18904         (vax_g_format): Likewise.
18905         (i370_single_format): Likewise.
18906         (i370_double_format): Likewise.
18907         (decimal_single_format): Likewise.
18908         (decimal_double_format): Likewise.
18909         (decimal_quad_format): Likewise.
18910         (c4x_single_format): Likewise.
18911         (c4x_extended_format): Likewise.
18912         (real_internal_format): Likewise.
18913         (coldfire_single_format): New real_format.
18914         (coldfire_double_format): Likewise.
18915         * config/pdp11/pdp11.c (pdp11_f_format): Initialize
18916         canonical_nan_lsbs_set.
18917         (pdp11_d_format): Likewise.
18918         * config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE
18919         if TARGET_COLDFIRE_CPU.
18920
18921 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
18922
18923         * config/m68k/m68k-protos.h (m68k_output_pic_call): Delete.
18924         (output_call, m68k_legitimize_call_address): Declare.
18925         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary
18926         parenthesees.  Add support for a 'W' constraint.
18927         (LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling.
18928         (PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'.
18929         (m68k_symbolic_call, m68k_symbolic_jump): Declare.
18930         * config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New
18931         variables.
18932         (override_options): Initialize them.  Do not set flag_no_function_cse
18933         for TARGET_ID_SHARED_LIBRARY.
18934         (m68k_output_pic_call): Delete.
18935         (m68k_legitimize_call_address): New function.
18936         (print_operand): Remove the %o prefix.  Handle the %p prefix.
18937         (output_call): New function.
18938         (m68k_output_mi_thunk): Use m68k_symbolic_jump.  Always load the
18939         target address from the GOT if symbolic jumps are not allowed.
18940         * config/m68k/m68k.md (call, general_operand): Do not set
18941         SYMBOL_REF_FLAG.  Use m68k_legitimize_call_address instead.
18942         Merge separate flag_pic and !flag_pic define_insns into...
18943         (*call, *call_value): ...these new patterns.  Match the address
18944         rather than the containing MEM and require it to be a call_operand.
18945         Use output_call to generate the asm template.
18946         * config/m68k/predicates.md (const_call_operand): New predicate.
18947         (call_operand): Likewise.
18948
18949 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
18950
18951         * config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition.
18952         (STACK_GROWS_DOWNWARD): Define to 1.
18953         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate
18954         comments, emphasizing that these values are only defaults.
18955         * config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef.
18956         * config/m68k/m68k.c (const_method): Remove trailing whitespace.
18957
18958 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
18959
18960         * config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling.
18961
18962 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
18963             Richard Sandiford  <richard@codesourcery.com>
18964
18965         * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
18966         (FP_REGNO_P): New macros.
18967         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
18968         (REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
18969         (EH_RETURN_STACKADJ_RTX): Use A0_REG.
18970         * config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.
18971
18972 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
18973
18974         * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
18975         (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
18976         to $tmake_file.
18977         * config/m68k/t-floatlib: New file, extracting common code from...
18978         * config/m68k/t-m68kbare, config/m68k/t-m68kelf,
18979         * config/m68k/t-uclinux: Here.
18980         * config/m68k/fpgnulib.c: Do not compile extendeed precision
18981         routines on ColdFire targets.
18982
18983 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
18984
18985         * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
18986         (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
18987         (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
18988         (m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
18989         explicitly set MOTOROLA to 1.
18990         * config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.
18991
18992 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
18993             Nathan Sidwell  <nathan@codesourcery.com>
18994
18995         * config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
18996         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
18997         * config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
18998         * config/m68k/m68020-elf.h (LIB_SPEC): Delete.
18999         * config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
19000         * config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
19001         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
19002         (NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
19003         (BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
19004         * config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
19005         * config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
19006         (WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
19007         (TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
19008         (DBX_REGISTER_NUMBER): Delete.
19009         * config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
19010         (PCC_STATIC_STRUCT_RETURN): Don't undefine.
19011         * config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.
19012
19013 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
19014
19015         * config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
19016         * config/flat.h: New file.
19017         * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
19018         OBJECT_FORMAT_FLAT.
19019         * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
19020         indirect references for -msep-data or -mid-shared-library.
19021         Do not use PC-relative code addresses either.
19022         * config/m68k/m68k.c (override_options): Restrict -fPIC error
19023         to -mpcrel.
19024         * config/m68k/uclinux.h (STARTFILE_SPEC): Define.  Use Scrt1.o
19025         for shared libraries and crt1.o for executables.  Use crti.o and
19026         crtbegin.o.
19027         (ENDFILE_SPEC): Use crtend.o and crtn.o.
19028         (LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
19029         Do not add -elf2flt or -shared-lib-id options here.
19030         (LINK_SPEC): Define.  Pass -elf2flt if no -elf2flt option is given.
19031         Pass -shared-lib-id if -mid-shared-library, taking the library
19032         identifier from -mshared-library-id if given, otherwise
19033         defaulting to 0.
19034         (EH_FRAME_IN_DATA_SECTION): Do not undefine.
19035         (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
19036         (TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
19037         and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
19038         (DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
19039         * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
19040         and crtend.o.
19041         * config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
19042         jump sequence for ISA A and ISA A+.
19043         (PICJUMP): Likewise.
19044
19045 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
19046
19047         * config.gcc (m68k-*-uclinux*): Base the port on the common
19048         and m68k GNU/Linux files rather than on the generic ELF ones.
19049         * config/m68k/uclinux.h (TARGET_VERSION): Override.
19050         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
19051
19052 2007-01-18  Julian Brown  <julian@codesourcery.com>
19053             Richard Sandiford  <richard@codesourcery.com>
19054
19055         * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
19056         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
19057         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
19058         before redefining.
19059         * config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
19060         80 unconditionally.
19061         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
19062
19063 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
19064
19065         * doc/install.texi: Document m68k-uclinuxoldabi.
19066         * config.gcc (m68k-*-uclinuxoldabi): New configuration.
19067         * config/m68k/uclinux-oldabi.h: New file, copied from
19068         config/m68k/uclinux.h.
19069
19070 2007-01-18  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
19071
19072         * config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it.
19073         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem.
19074         (m32r_compute_frame_size): Use unsigned for regno.
19075         (m32r_reload_lr): Use gen_frame_mem.
19076         (pop): New.
19077         (m32r_output_function_epilogue): Don't output the function epilogue
19078         textually here.
19079         (m32r_expand_epilogue): New.
19080         (direct_return): Return false if the function has the interrupt
19081         attribute.
19082         (m32r_hard_regno_rename_ok): Remove code for the textual epilogue.
19083         * config/m32r/m32r.md (epilogue): New expander.
19084         (return_lr, return_rte): New insns.
19085         (return): Make it expander.
19086         (return_normal): New expander.
19087
19088 2007-01-18  Josh Conner  <jconner@apple.com>
19089
19090         PR target/30485
19091         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
19092         support for UNLE, UNLT, UNGE, and UNGT.
19093
19094 2007-01-18  Jan Hubicka  <jh@suse.cz>
19095
19096         * tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
19097         * tree-tailcall (add_virtual_phis): Likewise.
19098         (optimize_tail_call): Return TODOs.
19099         (execute_tail_calls): Return TODOs.
19100         * tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO.
19101         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something
19102         changed.
19103         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
19104         Cleanup cfg using TODO.
19105         * tree-flow.h (cleanup_tree_cfg_loop): Update prototype.
19106         * passes.c (execute_function_todo): When cleanup did something, remove
19107         unused locals.
19108         * tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO.
19109         (make_edges): Don't cleanup_cfg.
19110
19111 2007-01-18  Uros Bizjak  <ubizjak@gmail.com>
19112
19113         * reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS,
19114         UNSPEC_XTRACT_FRACT]: Use generic code for instructions that
19115         operate on the top of stack.
19116         [UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite
19117         register handling of instructions that output to the second
19118         stack slot.
19119         [UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove.
19120         (move_for_stack_reg): Special-case check for dead destination
19121         stack slot for constant load of 1.0 inside UNSPEC_TAN.
19122
19123         * config/i386/i386.md (UNSPEC_TAN): New constant.
19124         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove.
19125         (fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns
19126         to correctly model move of constant 1.0 to top stack slot.
19127         (*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns.
19128         (unnamed peephole2 pattern): Remove corresponding peephole2
19129         pattern that optimizes tan insn and loading of constant 1.0.
19130         (tanxf2): Use fptanxf4_i387.
19131         (tan<mode>2): Rename from tansf2 and tandf2 and macroize insn
19132         patterns using X87MODEF12 mode macro.  Use fptan_extend<mode>xf4_i387
19133         and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
19134         disable patterns for SSE math.
19135         (sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation.
19136         (fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1.
19137
19138 2007-01-18  Dirk Mueller  <dmueller@suse.de>
19139             Richard Guenther <rguenther@suse.de>
19140
19141         PR diagnostic/8268
19142         * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
19143         * common.opt (Warray-bounds): Add new warning option.
19144         * c-opts.c (c_common_handle_option): Define -Warray-bounds
19145         if -Wall is given.
19146         * Makefile.in: make tree-vrp.o depend on toplev.h
19147         * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
19148         is enabled.
19149         (check_array_refs, check_array_bounds, check_array_ref): New.
19150
19151 2007-01-18  Jan Hubicka  <jh@suse.cz>
19152
19153         * tree-ssa-ccp.c (ccp_finalize): Return if something changed.
19154         (execute_ssa_ccp): Return flags conditionally.
19155         * tree-ssa-propagate.c (substitue_and_fold): Return if something was
19156         changed.
19157         * tree-ssa-propagate.h (substitute_and_fold): Update prototype.
19158
19159 2007-01-18  Steven Bosscher  <steven@gcc.gnu.org>
19160
19161         * cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
19162         the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
19163
19164         * Makefile.c (GTFILES): Add cfglayout.h.
19165         * gengtype.c (open_base_files): Likewise.
19166         * cfglayout.c (cfg_layout_function_footer,
19167         cfg_layout_function_header) Reindent to make gengtype happy.
19168         * cfglayout.h (cfg_layout_function_footer,
19169         cfg_layout_function_header): Add GTY(()) marker.
19170
19171         * ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.
19172
19173 2007-01-18  Ben Elliston  <bje@au.ibm.com>
19174
19175         * genautomata.c (write_automata): Include xstrerror output in the
19176         error message if writing the DFA description file fails.
19177
19178 2007-01-17  H.J. Lu  <hongjiu.lu@intel.com>
19179
19180         * config/mips/mips-protos.h (mips_output_external): Make it
19181         return void.
19182         * config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed.
19183         * config/mips/mips.c (irix_output_external_libcall): Likewise.
19184         (extern_list): Likewise.
19185         (extern_head): Likewise.
19186         (TARGET_ASM_FILE_END): Likewise.
19187         (mips_file_end): Likewise.
19188         (mips_output_external): Rewritten.
19189
19190 2007-01-18  Ben Elliston  <bje@au.ibm.com>
19191
19192         * genpreds.c (write_insn_preds_c): Only write out the function
19193         body for regclass_for_constraint if we have register constraints.
19194
19195 2007-01-17  Tom Tromey  <tromey@redhat.com>
19196
19197         * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
19198         * doc/install.texi (Testing): Use sourceware.org.
19199         (Binaries): Likewise.
19200         (Specific): Likewise.
19201         * doc/contrib.texi (Contributors): Use sourceware.org.
19202
19203 2007-01-17  Anatoly Sokolov <aesok@post.ru>
19204
19205         * config/avr/avr.h (AVR_HAVE_LPMX): New macro.
19206         (AVR_ENHANCED): Rename to ...
19207         (AVR_HAVE_MUL): ... new.
19208         (avr_enhanced_p): Rename to ...
19209         (avr_have_mul_p): ... new.
19210         (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of
19211         'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
19212         * config/avr/avr.c (avr_enhanced_p): Rename to ...
19213         (avr_have_mul_p): ... new.
19214         (base_arch_s): Rename 'enhanced' to 'have_mul'.
19215         (avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of
19216         'avr_enhanced_p' and 'enhanced'.
19217         (ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use
19218         AVR_HAVE_MUL instead of AVR_ENHANCED.
19219         * avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
19220         (mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3,
19221         *mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL
19222         instead of AVR_ENHANCED.
19223         (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
19224         * libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.
19225         (__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__.
19226
19227 2007-01-17  Ian Lance Taylor  <iant@google.com>
19228
19229         * vec.h (VEC_reserve_exact): Define.
19230         (vec_gc_p_reserve_exact): Declare.
19231         (vec_gc_o_reserve_exact): Declare.
19232         (vec_heap_p_reserve_exact): Declare.
19233         (vec_heap_o_reserve_exact): Declare.
19234         (VEC_OP (T,A,reserve_exact)): New static inline function, three
19235         versions.
19236         (VEC_OP (T,A,reserve)) [all versions]: Remove handling of
19237         negative parameter.
19238         (VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
19239         (VEC_OP (T,A,copy)) [all versions]: Likewise.
19240         (VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
19241         * vec.c (calculate_allocation): Add exact parameter.  Change all
19242         callers.
19243         (vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
19244         (vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
19245         (vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
19246         (vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
19247         (vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
19248         (vec_heap_p_reserve_exact): New function.
19249         (vec_heap_o_reserve_exact): New function.
19250
19251 2007-01-17  Jan Hubicka  <jh@suse.cz>
19252
19253         * ipa-type-escape.c (look_for_casts): Revamp using handled_component_p.
19254
19255 2007-01-17  Eric Christopher  <echristo@apple.com>
19256
19257         * config.gcc: Support core2 processor.
19258
19259 2007-01-16  Jan Hubicka  <jh@suse.cz>
19260
19261         * tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing
19262         the names, just unlink the chain so we don't crash on dangling
19263         pointers
19264         to dead SSA names.
19265
19266 2007-01-16  Jan Hubicka  <jh@suse.cz>
19267
19268         * cgraph.h (cgraph_decide_inlining_incrementally): Kill.
19269         * tree-pass.h: Reorder to make IPA passes appear toegher.
19270         (pass_early_inline, pass_inline_parameters, pass_apply_inline):
19271         Declare.
19272         * cgraphunit.c (cgraph_finalize_function): Do not compute inling
19273         parameters, do not call early inliner.
19274         * ipa-inline.c: Update comments.  Include tree-flow.h
19275         (cgraph_decide_inlining): Do not compute inlining parameters.
19276         (cgraph_decide_inlining_incrementally): Return TODOs; assume to
19277         be called with function context set up.
19278         (pass_ipa_inline): Remove unreachable functions before pass.
19279         (cgraph_early_inlining): Simplify assuming to be called from the
19280         PM as local pass.
19281         (pass_early_inline): New pass.
19282         (cgraph_gate_ipa_early_inlining): New gate.
19283         (pass_ipa_early_inline): Turn into simple wrapper.
19284         (compute_inline_parameters): New function.
19285         (gate_inline_passes): New gate.
19286         (pass_inline_parameters): New pass.
19287         (apply_inline): Move here from tree-optimize.c
19288         (pass_apply_inline): New pass.
19289         * ipa.c (cgraph_remove_unreachable_nodes): Verify cgraph after
19290         transforming.
19291         * tree-inline.c (optimize_inline_calls): Return TODOs rather than
19292         doing them by hand.
19293         (tree_function_versioning): Do not allocate dummy struct function.
19294         * tree-inline.h (optimize_inline_calls): Update prototype.
19295         * tree-optimize.c (execute_fixup_cfg): Export.
19296         (pass_fixup_cfg): Remove
19297         (tree_rest_of_compilation): Do not apply inlines.
19298         * tree-flow.h (execute_fixup_cfg): Declare.
19299         * Makefile.in (gt-passes.c): New.
19300         * passes.c: Include gt-passes.h
19301         (init_optimization_passes): New passes.
19302         (nnodes, order): New static vars.
19303         (do_per_function_toporder): New function.
19304         (execute_one_pass): Dump current pass here.
19305         (execute_ipa_pass_list): Don't dump current pass here.
19306
19307 2007-01-16  Janis Johnson  <janis187@us.ibm.com>
19308
19309         * config/dfp-bit.c (dfp_compare_op): Return separate value for NaN.
19310         (DFP_NE, DFP_LE, DFP_GE): Return false for NaN.
19311
19312 2007-01-16  David Edelsohn  <edelsohn@gnu.org>
19313
19314         * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
19315         (strong_alias): Define.
19316         (__gcc_qmul): Provide non-FMA for soft-float.
19317         (__gcc_qdiv): Same.
19318         (__gcc_qneg): New.
19319         (__gcc_qeq): New.
19320         (__gcc_qle): New.
19321         (__gcc_qge): New.
19322         (__gcc_qunord): New.
19323         (__gcc_stoq): New.
19324         (__gcc_dtoq): New.
19325         (__gcc_qtos): New.
19326         (__gcc_qtod): New.
19327         (__gcc_qtoi): New.
19328         (__gcc_qtou): New.
19329         (__gcc_itoq): New.
19330         (__gcc_utoq): New.
19331         (fmsub): New.
19332         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
19333         soft-float functions.
19334         * config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
19335         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
19336         about long double soft float.
19337
19338 2007-01-16  Dorit Nuzman  <dorit@il.ibm.com>
19339             Tehila Meyzels  <tehila@il.ibm.com>
19340
19341         * tree-vectorizer.h (is_pattern_stmt_p): New.
19342         * tree-vect-analyze.c (vect_determine_vectorization_factor): Fix
19343         formatting (tabs instead of spaces). Cleanup and clarify setting
19344         of STMT_VINFO_VECTYPE. Call is_pattern_stmt_p.
19345         * tree-vect-transform.c (vect_get_vec_def_for_operand): Fix typo.
19346         (vectorizable_type_demotion): Check that types are integral.
19347         (vectorizable_type_promotion): Likewise.
19348         (vectorizable_store): Fix typo.  Eliminate new-line at end of
19349         comments.
19350
19351 2007-01-16  Jan Hubicka  <jh@suse.cz>
19352
19353         * tree-ssanames.c (release_dead_ssa_names): Remove invalidated
19354         cgraph edges too.
19355
19356 2007-01-15  Eric Christopher  <echristo@apple.com>
19357
19358         * ifcvt.c: Include vec.h, vecprim.h.
19359         (check_cond_move_block): New argument regs.
19360         Reorganize. Add registers used to regs.
19361         (cond_move_process_if_block): Use regs set above as
19362         loop bounds.
19363
19364 2007-01-15  Eric Christopher  <echristo@apple.com>
19365
19366         * config/darwin.h: Update copyright.
19367         (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella.
19368         (LINK_COMMAND_SPEC): Add -u.
19369         (LINK_SPEC): Fix umbrella for above.
19370
19371 2007-01-15  Joseph S. Myers  <joseph@codesourcery.com>
19372
19373         * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
19374         glibc CVS.
19375
19376 2007-01-15  Tom Tromey  <tromey@redhat.com>
19377
19378         * doc/sourcebuild.texi (libgcj Tests): Don't mention jacks.
19379         * doc/install.texi (Testing): Don't mention jacks.
19380         (Configuration): Document --enable-java-maintainer-mode.  Move
19381         --with-java-home to libgcj-specific section.  Document
19382         --with-ecj-jar.
19383         (Prerequisites): Mention --enable-java-maintainer-mode, ecj1.
19384
19385 2007-01-15  Jan Hubicka  <jh@suse.cz>
19386
19387         * tree-ssa-dce.c (DCE_TODOs): New.
19388         (propagate_necessity): Return if something changed.
19389         (eliminate_unnecessary_stmts): Likewise.
19390         (perform_tree_ssa_dce): Return TODO flags when needed.
19391         (pass_dce, pass_dce_loop, pass_cd_dce): Remove TODO flags.
19392
19393 2007-01-15  Uros Bizjak  <ubizjak@gmail.com>
19394
19395         * config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
19396         (fyl2x_extend<mode>xf3_i387): New insn pattern.
19397         (log<mode>2): Rename from logsf2 and logdf2 and macroize insn
19398         patterns using X87MODEF12 mode macro.  Extend operand 1
19399         to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
19400         (log10<mode>2): Ditto.
19401         (log2<mode>2): Ditto.
19402         (log1p<mode>2): Ditto.
19403         (logb<mode>2): Ditto.
19404         (fyl2xp1xf3_i387): Rename from fyl2xp1_xf3.
19405         (fyl2xp1_extend<mode>xf3_i387): New insn pattern.
19406         (*fxtractxf3_i387): Rename from *fxtractxf3.
19407         (fxtract_extend<mode>xf3_i387): New insn pattern.
19408         (ilogbsi2): Use match_dup 3, not match_operand:XF 3.
19409         * config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387()
19410         and gen_fyl2xxf3_i387().
19411
19412 2007-01-14  Zdenek Dvorak <dvorakz@suse.cz>
19413
19414         * loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement.
19415         * cfgloopmanip.c (fix_loop_placement): Made static.  Use
19416         get_loop_exit_edges.  Changed return type to bool.
19417         * cfgloop.h (fix_loop_placement): Declaration removed.
19418
19419 2007-01-14  Dorit Nuzman  <dorit@il.ibm.com>
19420
19421         * param.h (MIN_VECT_LOOP_BOUND): New.
19422         * params.def (MIN_VECT_LOOP_BOUND): New.
19423         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another
19424         argument - minimum threshold for number of iterations.
19425         * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another
19426         argument to declaration.
19427         * tree-vect-analyze.c (vect_analyze_operations): Check value of
19428         MIN_VECT_LOOP_BOUND.
19429         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call
19430         slpeel_tree_peel_loop_to_edge with additional argument.
19431         (vect_do_peeling_for_alignment): Likewise.
19432         * doc/invoke.texi (min-vect-loop-bound): Document new param option.
19433
19434 2007-01-14  Uros Bizjak  <ubizjak@gmail.com>
19435
19436         PR target/30413
19437         * config/i386/i386.c (print_operand) ['z']: Output 'b' for
19438         operands of size 1.
19439
19440 2007-01-14  Jan Hubicka  <jh@suse.cz>
19441
19442         * tree-dfa.c (remove_referenced_var): New function.
19443         * tree-ssa-live.c (remove_unused_locals): Walk referenced vars and
19444         prune referenced vars list too.
19445         * tree-flow.h (remove_referenced_var): Declare.
19446
19447 2007-01-14  Jan Hubicka  <jh@suse.cz>
19448
19449         * tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs
19450         separately.
19451         (remove_stmt_from_eh_region_fn): Do not remove call_exprs.
19452         (verify_eh_throw_stmt_node, verify_eh_throw_table_statements): Kill.
19453         * except.h (verify_eh_throw_table_statements): Kill prototype.
19454         * cfgexpand.c (expand_gimple_basic_block): Propagate Eh regions
19455         into call exrepssions.
19456         * tree-optimize.c (execute_free_cfg_annotatiosn): Do not call
19457         eh trhow verifier.
19458         * tree-cfg.c: Include pointer-set.h.
19459         (verify_node_sharing): Work on pointer set.
19460         (verify_eh_throw_stmt_node): New.
19461         (verify_stmts): Use pointers sets, verify throw_stmt.
19462
19463 2007-01-13  Zdenek Dvorak <dvorakz@suse.cz>
19464
19465         * ipa-reference.c (analyze_function): Consider also addresses taken
19466         in phi nodes.
19467
19468 2007-01-12  Roger Sayle  <roger@eyesopen.com>
19469
19470         * c-typeck.c (null_pointer_constant_p): Replace use of
19471         TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
19472         (build_c_cast): Likewise.
19473
19474 2007-01-12  Roger Sayle  <roger@eyesopen.com>
19475
19476         * tree.h (force_fit_type_double): Remove unused final argument.
19477         * c-common.c (constant_expression_warning): Replace use of
19478         TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
19479         (convert_and_check): Likewise.
19480         (shorten_compare): Update call to force_fit_type_double.
19481         (c_common_truthvalue_conversion) <INTEGER_CST>: Use integer_zerop.
19482         * convert.c (convert_to_pointer): Update call to
19483         force_fit_type_double.
19484         * fold-const.c (force_fit_type_double): Remove overflowed_const
19485         argument.
19486         (int_const_binop, fold_convert_const_int_from_int,
19487         fold_convert_const_int_from_real, fold_div_compare,
19488         fold_sign_changed_comparison, fold_unary, fold_negate_const,
19489         fold_abs_const, fold_not_const): Remove the final argument from
19490         calls to force_fit_type_double.
19491
19492 2007-01-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
19493
19494         * configure.ac: Set insn to "nop" for spu-*-* also.
19495         * configure: Regenerate.
19496
19497 2007-01-12  Olga Golovanevsky  <olga@il.ibm.com>
19498
19499         * builtins.def : Add BUILT_IN_FREE.
19500
19501 2007-01-12  Jan Hubicka  <jh@suse.cz>
19502
19503         PR tree-optimization/30443
19504         * tree-inline.c (tree_function_versioning): Do not optimize when
19505         cloning for inlining.
19506
19507 2007-01-12  Zdenek Dvorak <dvorakz@suse.cz>
19508
19509         * doc/loop.texi: Document recording of loop exits.
19510         * cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop.
19511         (update_single_exits_after_duplication,
19512         update_single_exit_for_duplicated_loop,
19513         update_single_exit_for_duplicated_loops): Removed.
19514         (duplicate_loop_to_header_edge): Do not call
19515         update_single_exits_after_duplication and
19516         update_single_exit_for_duplicated_loops.
19517         (loop_version): Do not update single_exit information.
19518         (fix_loop_structure): Use record_loop_exits instead of
19519         mark_single_exit_loops.
19520         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update
19521         the lists of loop exits.
19522         * cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force,
19523         split_edge, merge_blocks): Update the lists of loop exits.
19524         * modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to
19525         loop_optimizer_init.
19526         * loop-init.c (loop_optimizer_init): Call record_loop_exits instead
19527         of mark_single_exit_loops.
19528         (loop_optimizer_finalize): Call release_recorded_exits.
19529         * tree-ssa-loop.c (tree_loop_optimizer_init): Pass
19530         LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init.
19531         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not
19532         update single exit information.
19533         * lambda-code.c (perfect_nestify): Ditto.
19534         * cfgloop.c (flow_loop_free): Destroy the list of exits of the loop.
19535         (mark_single_exit_loops): Removed.
19536         (alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free,
19537         get_exit_descriptions, rescan_loop_exit, record_loop_exits,
19538         dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New
19539         functions.
19540         (get_loop_exit_edges, single_exit): Use recorded exit lists.
19541         (add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits.
19542         (verify_loop_structure): Verify consistency of the exit lists.
19543         (flow_loops_find): Use alloc_loop.  Initialize exits hash.
19544         (set_single_exit): Removed.
19545         * cfgloop.h (struct loop_exit): New function.
19546         (struct loop): single_exit_ field replaced by exits field.
19547         (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by
19548         LOOPS_HAVE_RECORDED_EXITS.
19549         (struct loops): Added exits hash.
19550         (mark_single_exit_loops, set_single_exit): Declaration removed.
19551         (release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare.
19552
19553 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
19554
19555         * doc/invoke.texi: Avoid use of @headitem.
19556
19557 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
19558
19559         * cse.c (cse_insn): Move HAVE_CC0 code after declarations.
19560
19561 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
19562
19563         * doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the
19564         list of targets.
19565
19566 2007-01-12  Nathan Sidwell  <nathan@codesourcery.com>
19567             Richard Sandiford  <richard@codesourcery.com>
19568
19569         * doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short.
19570         * config/m68k/m68k.opt: Resort options.
19571         (mbitfield, mrtd, mshort): Remove RejectNegative properties.
19572
19573 2007-01-12  Nathan Sidwell  <nathan@codesourcery.com>
19574             Richard Sandiford  <richard@codesourcery.com>
19575
19576         * doc/invoke.texi: Document the macros that are defined by
19577         m68k's -mtune and -mhard-float options.
19578         * config/m68k/m68k-protos.h (m68k_cpp_cpu_ident) Declare.
19579         (m68k_cpp_cpu_family): Likewise.
19580         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add a full set
19581         of __ucfv*__ macros.  Define __mcffpu__ if generating code for
19582         ColdFire FPUs.  Define __mcf_cpu_* and __mcf_family_* macros.
19583         * config/m68k/m68k.c (m68k_cpp_cpu_ident): New function.
19584         (m68k_cpp_cpu_family): Likewise.
19585
19586 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
19587
19588         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Treat all mc68*
19589         macros besides mc68000 as tuning macros.  Use a switch statement
19590         to set them and mcpu32.
19591
19592 2007-01-12  Julian Brown  <julian@codesourcery.com>
19593
19594         * config/m68k/m68k.h: Use TARGET_68040 instead of TARGET_68040_ONLY.
19595         (TARGET_68040_ONLY): Rename to...
19596         (TARGET_68040): ...this.
19597         * config/m68k/m68k.c: Use TARGET_68040 instead of TARGET_68040_ONLY.
19598         * config/m68k/m68k.md: Likewise.
19599
19600 2007-01-12  Julian Brown  <julian@codesourcery.com>
19601             Nathan Sidwell  <nathan@codesourcery.com>
19602             Richard Sandiford  <richard@codesourcery.com>
19603
19604         * config.gcc (m680[012]0-*-*, m68k*-*-*): Set m68k_cpu_ident to
19605         the -mcpu= argument associated with the --with-cpu setting.
19606         Define M68K_DEFAULT_TUNE to the default -mtune= option,
19607         if different from the one implied by the -mcpu setting.
19608         Accept --with-cpu=FOO if FOO is listed in m68k-devices.def,
19609         using mcpu=FOO as the default CPU option.  Set target_cpu_default2.
19610         * doc/invoke.texi: Mention ColdFire in the introduction to the
19611         m68k options.  Document the new -march, -mcpu, -mtune, -mdiv,
19612         -mno-div and -mhard-float options.  Make -m68881 a synonym for
19613         -mhard-float.  Document the previously-undocumented -m5206e,
19614         -m528x, -m5307 and -m5407 options.  Tweak the existing option
19615         documentation for consistency.
19616         * doc/install.texi: Mention new --with-cpu arguments.
19617         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Only use the
19618         default CPU if neither -mcpu nor -march are specified.
19619         (ASM_CPU_SPEC): Pass down -mcpu and -march options.
19620         (TARGET_CPU_CPP_BUILTINS): Set __mcfisa*__ macros from
19621         TARGET_ISA*.  Set the legacy __mcf*__ cpu macros in the same way,
19622         using m68k_tune to decide between families that implement the
19623         same ISA.  Use m68k_tune to set __mcfv4e__.
19624         (FL_BITFIELD, FL_68881, FL_COLDFIRE, FL_CF_HWDIV, FL_CF_MAC)
19625         (FL_CF_EMAC, FL_CF_EMAC_B, FL_CF_USP, FL_CF_FPU, FL_ISA_68000)
19626         (FL_ISA_68010, FL_ISA_68020, FL_ISA_68040, FL_ISA_A, FL_ISA_B)
19627         (FL_ISA_C, FL_ISA_MMU): New macros.
19628         (MASK_COLDFIRE): Delete.
19629         (TARGET_68010, TARGET_68020, TARGET_68040_ONLY, TARGET_COLDFIRE)
19630         (TARGET_ISAB): Redefine in terms of m68k_cpu_flags.
19631         (TARGET_68881, TARGET_COLDFIRE_FPU): Redefine in terms of m68k_fpu.
19632         (TARGET_HARD_FLOAT): Do not define here.
19633         (TARGET_ISAAPLUS, TARGET_ISAC): New macros.
19634         (TUNE_68000): New macro.
19635         (TUNE_68000_10): Redefine in terms of TUNE_68000 and TUNE_68010.
19636         (TUNE_68010, TUNE_68030, TUNE_68040, TUNE_68060, TUNE_CPU32)
19637         (TUNE_CFV2): Redefine in terms of m68k_tune.
19638         (uarch_type, target_device, fpu_type): New enums.
19639         (m68k_cpu, m68k_tune, m68k_fpu, m68k_cpu_flags): Declare.
19640         * config/m68k/m68k.c (TARGET_DEFAULT): Remove MASK_68881.
19641         (FL_FOR_isa_00, FL_FOR_isa_10, FL_FOR_isa_20, FL_FOR_isa_40)
19642         (FL_FOR_isa_cpu32, FL_FOR_isa_a, FL_FOR_isa_aplus, FL_FOR_isa_b)
19643         (FL_FOR_isa_c): New macros.
19644         (m68k_isa): New enum.
19645         (m68k_target_selection): New structure.
19646         (all_devices, all_isas, all_microarchs): New tables.
19647         (m68k_cpu_entry, m68k_arch_entry, m68k_tune_entry, m68k_cpu)
19648         (m68k_tune, m68k_fpu, m68k_cpu_flags): New variables.
19649         (MASK_ALL_CPU_BITS): Delete.
19650         (m68k_find_selection): New function.
19651         (m68k_handle_option): Handle -mcpu=, -march= and -mtune=.
19652         Map the legacy target options to a combination of the new ones.
19653         (override_options): Set m68k_cpu, m68k_tune, m68k_fpu and
19654         m68k_cpu_flags.  Handle M68K_DEFAULT_TUNE.  Use m68k_cpu_flags
19655         to derive default MASK_BITFIELD, MASK_CF_HWDIV and MASK_HARD_FLOAT
19656         settings.
19657         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, mcfv4e)
19658         (m68010, m68020, m68020-40, m68020-60, m68030, m68040): Remove Mask
19659         properties.
19660         (m68881, msoft-float): Change mask from 68881 to HARD_FLOAT.
19661         (march=, mcpu=, mdiv, mhard-float, mtune=): New options.
19662         * config/m68k/m68k-devices.def: New file.
19663
19664 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
19665             Nathan Sidwell  <nathan@codesourcery.com>
19666
19667         * config/m68k/m68k.h (ASM_CPU_SPEC, ASM_SPEC, EXTRA_SPECS)
19668         (SUBTARGET_EXTRA_SPECS): New macros.
19669         * config/m68k/linux.h (ASM_SPEC): Remove CPU flags;
19670         use %(asm_cpu_spec) instead.
19671         * config/m68k/m68k-none.h (ASM_SPEC): Likewise.
19672         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
19673         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
19674         (EXTRA_SPECS): Rename to...
19675         (SUBTARGET_EXTRA_SPECS): ...this.
19676
19677 2007-01-12  Nathan Sidwell  <nathan@codesourcery.com>
19678             Richard Sandiford  <richard@codesourcery.com>
19679             Julian Brown  <julian@codesourcery.com>
19680
19681         * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
19682         (m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu
19683         to the configuration's default CPU.
19684         (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise.
19685         Remove default masks.
19686         (m680[012]0-*-*): Set the default with_cpu to the first part of
19687         the target name.
19688         (m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu.
19689         (m68k*-*-linux): Extend the --with-cpu handling to...
19690         (m680[012]0-*-*, m68k*-*-*): ...these configurations.  Allow m68000
19691         and m68010.  Don't set target_cpu_default2.
19692         * doc/install.texi: Document --with-cpu for m68k.
19693         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define.
19694         * config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k)
19695         (M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030)
19696         (M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT)
19697         (ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete.
19698         (ASM_SPEC): Remove use of %(asm_cpu_default).
19699         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete.
19700         * config/m68k/linux.h (TARGET_DEFAULT): Delete.
19701         (CPP_SPEC): Merge definitions.  Do not handle __HAVE_68881__ here.
19702         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
19703         __HAVE_FPU__ if TARGET_HARD_FLOAT.
19704         (TARGET_DEFAULT): Delete.
19705         (EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec,
19706         cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec.
19707         (CPP_CPU_SPEC): Delete.
19708         (TARGET_VERSION): Merge definitions, using TARGET_68010 to pick
19709         the appropriate string.
19710         (CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete.
19711         (CPP_SPEC): Define to NETBSD_CPP_SPEC.
19712         (ASM_SPEC): Don't use %(asm_default_spec).
19713         * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
19714         TARGET_DEFAULT and add MASK_68881.
19715         * config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments.
19716
19717 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
19718
19719         * config.gcc (m68010-*-netbsdelf*): Add MASK_68010.
19720         (m68k*-*-netbsdelf*, m68k*-*-openbsd*, m68k*-linux*): Add
19721         MASK_68010 alongside MASK_68020.
19722         * doc/invoke.texi: Document -m68010.
19723         * config/m68k/m68k.opt (m68010): New.
19724         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define mc68010
19725         if TUNE_68010.
19726         (TUNE_68010): New macro.
19727         * config/m68k/m68k-none.h (M68K_CPU_m68k, M68K_CPU_m68010)
19728         (M68K_CPU_m68020, M68K_CPU_m68030, M68K_CPU_m68040)
19729         (M68K_CPU_m68332): Add MASK_68010.
19730         * config/m68k/linux.h (TARGET_DEFAULT): Add MASK_68010 to
19731         fallback definition.
19732         * config/m68k/netbsd-elf.h (CPP_CPU_SPEC): Remove now-redundant
19733         defines.
19734         * config/m68k/m68k.c (MASK_ALL_CPU_BITS): Add MASK_68010.
19735         (m68k_handle_option): Handle OPT_m68010.  Add MASK_68010
19736         to all entries that use MASK_68020.
19737         (output_move_simode_const, output_move_himode, output_move_qimode)
19738         (output_move_stricthi, output_move_strictqi): Use TARGET_68010
19739         instead of TARGET_68020 to select clr behavior.  Remove comment
19740         about there being no TARGET_68010.
19741         * config/m68k/m68k.md: Likewise throughout.
19742
19743 2007-01-12  Julian Brown  <julian@codesourcery.com>
19744
19745         * config/m68k/m68k.h (TARGET_ISAB): New macro.
19746         * config/m68k/m68k.c: Use TARGET_ISAB rather than TARGET_CFV4.
19747         * config/m68k/m68k.md: Likewise.
19748
19749 2007-01-12  Julian Brown  <julian@codesourcery.com>
19750
19751         * config/m68k/m68k.h (LEGITIMATE_INDEX_P, LEGITIMIZE_ADDRESS): Use
19752         TARGET_COLDFIRE_FPU instead of TARGET_CFV4E.
19753
19754 2007-01-12  Julian Brown  <julian@codesourcery.com>
19755
19756         * config/m68k/m68k.h (TUNE_68040_60): New macro.
19757         * config/m68k/m68k.c (standard_68881_constant_p): Use it.
19758         * config/m68k/m68k.md: Likewise.
19759
19760 2007-01-12  Julian Brown  <julian@codesourcery.com>
19761             Richard Sandiford  <richard@codesourcery.com>
19762
19763         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Use TUNE_68030
19764         instead of TARGET_68030, TUNE_68040 instead of TARGET_68040,
19765         TUNE_68060 instead of TARGET_68060 and TUNE_CPU32 instead of
19766         TARGET_CPU32.
19767         (TARGET_CPU32): Rename to...
19768         (TUNE_CPU32): ...this.
19769         (TUNE_68000_10, TUNE_68030, TUNE_68040, TUNE_68060)
19770         (TUNE_CFV2): New macros.
19771         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Simplify;
19772         remove conditions that are implied by TARGET_68020.
19773         * config/m68k/m68k.c (m68k_output_function_prologue): Use TUNE_68040
19774         instead of TARGET_68040 and TUNE_CPU32 instead of TARGET_CPU32.
19775         (m68k_output_function_epilogue): Likewise.
19776         (m68k_rtx_costs): Likewise.  Use TUNE_68060 instead of TARGET_68060
19777         and TUNE_CFV2 instead of TARGET_5200.  Use TUNE_68000_10 instead of
19778         "!TARGET_68020 && !TARGET_COLDFIRE" to choose between 68000 and
19779         non-68000 timings.  Refactor multiplication and division costs.
19780         (output_addsi3): Use TUNE_68040 instead of TARGET_68040 and
19781         TUNE_CPU32 instead of TARGET_CPU32.
19782         (standard_68881_constant_p): Use TUNE_68040 instead of TARGET_68040
19783         and TUNE_68060 instead of TARGET_68060.
19784         * config/m68k/m68k.md: Use TUNE_68040 instead of TARGET_68040,
19785         TUNE_68060 instead of TARGET_68060, and TUNE_CPU32 instead of
19786         TARGET_CPU32.
19787         (movsi_const0): Use TUNE_68000_10 rather than "!TARGET_68020
19788         && !TARGET_COLDFIRE" to choose between moveq and clr.
19789         Likewise in the unnamed movsf pattern.
19790         (ashlsi_17_24, lshrsi_17_24): Guard with TUNE_68000_10 rather than
19791         "!TARGET_68020 && !TARGET_COLDFIRE".  Likewise the unnamed
19792         ashiftrt pattern.
19793
19794 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
19795
19796         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Increase amount
19797         of tabbing before backslashes.
19798
19799 2007-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19800
19801         * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
19802         * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
19803         (ASM_OUTPUT_INTERNAL_LABEL): Define.
19804
19805 2007-01-11  Zdenek Dvorak <dvorakz@suse.cz>
19806
19807         * tree-ssa-loop-ivopts.c (extract_cond_operands): Split from
19808         find_interesting_uses_cond.
19809         (find_interesting_uses_cond): Use extract_cond_operands.
19810         (rewrite_use_compare): Use extract_cond_operands and
19811         force_gimple_operand_bsi.  Do not call update_stmt.
19812         (determine_use_iv_cost_condition): Use extract_cond_operands.
19813         Return cheaper of using original bound and changing the exit bound.
19814
19815 2007-01-11  Zdenek Dvorak <dvorakz@suse.cz>
19816
19817         PR tree-optimization/29516
19818         * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
19819         most_expensive_mult_to_index, addr_to_parts,
19820         create_mem_ref, maybe_fold_tmr): Make the type of
19821         fields of TARGET_MEM_REF sizetype.
19822         (move_fixed_address_to_symbol, move_pointer_to_base):
19823         New functions.
19824         * tree.def (TARGET_MEM_REF): Add comment on types of
19825         the operands.
19826
19827 2007-01-11  Joseph Myers  <joseph@codesourcery.com>
19828
19829         * c-common.c (vector_types_convertible_p): Treat opaque types as
19830         always convertible if they have the same size, but not otherwise.
19831
19832 2007-01-11  Steven Bosscher  <steven@gcc.gnu.org>
19833
19834         * ifcvt.c (struct noce_if_info): Add comments to the fields.
19835         Remove the b_unconditional field.
19836         (noce_try_sign_mask): Do not look at b_unconditional.
19837         (noce_process_if_block): Do not use merge_if_blocks.  Update
19838         the CFG here.  Do not set b_unconditional.
19839         (cond_move_process_if_block): Likewise.
19840         (find_cond_trap): Likewise.
19841         (check_cond_move_block): Require simple jump insns at the end
19842         of the basic block.
19843
19844 2007-01-11  Jan Hubicka  <jh@suse.cz>
19845
19846         PR tree-optimization/1046
19847         * tree-tailcall.c (suitable_for_tail_call_opt_p): Use TREE_ADDRESSABLE
19848         when alias info is not ready.
19849         (pass_tail_recursion): Do not require aliasing.
19850         * tree-ssa-copyrename.c (pass_rename_ssa_cop): Likewise.
19851         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Likewise.
19852         * tree-ssa-copy.c (pass_copy_prop): Likewise.
19853         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
19854         * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Likewise.
19855         * passes.c (init_optimization_passes): Execute rename_ssa_copies,
19856         ccp, forwprop, copy_prop, merge_phi, copy_prop, dce and tail recursion
19857         before inlining.
19858         * tree-ssa-operands.c (add_virtual_operand, get_indirect_ref_operand):
19859         When aliasing is not build, mark statement as volatile.
19860
19861 2007-01-11  Tom Tromey  <tromey@redhat.com>
19862
19863         PR preprocessor/15185, PR preprocessor/20989:
19864         * doc/cppopts.texi <-MT>: Update description of algorithm for
19865         computing default target.
19866         <-M, -MD>: Reword "basename" text.
19867
19868 2007-01-11  Roger Sayle  <roger@eyesopen.com>
19869
19870         * builtins.c (expand_builtin_pow, expand_builtin_powi,
19871         fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_trunc,
19872         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
19873         fold_builtin_int_int_roundingfn, fold_builtin_bitop,
19874         fold_builtin_bswap, real_constp, fold_builtin_pow,
19875         fold_builtin_powi, fold_builtin_signbit, fold_builtin_copysign,
19876         do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Replace
19877         uses of the macro TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
19878         * convert.c (convert_to_pointer): Likewise.
19879         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
19880         * fold-const.c (force_fit_type, fold_negate_expr, int_const_binop,
19881         const_binop, fold_convert_const_int_from_int,
19882         fold_convert_const_int_from_real,
19883         fold_convert_const_real_from_real, sign_bit_p,
19884         optimize_minmax_comparison, extract_muldiv_1, fold_div_compare,
19885         fold_sign_changed_comparison, fold_unary, fold_comparison,
19886         fold_binary, multiple_of_p, tree_Expr_non_zero_p,
19887         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
19888         * print-tree.c (print_node_brief, print_node): Likewise.
19889         * stor-layout.c (place_field, layout_type): Likewise.
19890         * tree-chrec.c (keep_cast): Likewise.
19891         * tree.c (build_vector, build_real, build_real_from_int_cst,
19892         build_complex): Likewise.
19893
19894 2007-01-11  Roger Sayle  <roger@eyesopen.com>
19895
19896         * tree.h (TREE_CONSTANT_OVERFLOW): Obsolete.  For the time being,
19897         treat TREE_CONSTANT_OVERFLOW as a synonym of TREE_OVERFLOW.
19898
19899 2007-01-11  Paolo Bonzini  <bonzini@gnu.org>
19900
19901         * configure.ac (strict1_warn): Rename to strict_warn.
19902         (WERROR, --enable-werror, symlink hacks, stage1_cflags,
19903         cc_set_by_configure, quoted_cc_set_by_configure,
19904         stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure,
19905         all_boot_languages, all_stagestuff): Remove.
19906         (target_list): Remove bootstrap targets.
19907         * Makefile.in (quickstrap): Unconditionally make a synonym of all.
19908         (BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING,
19909         REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS,
19910         SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF,
19911         VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS,
19912         STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build,
19913         stage1_copy, stage2_build, stage2_copy, stageprofile_build,
19914         stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build,
19915         stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap,
19916         bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3,
19917         bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2,
19918         unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2,
19919         restage3, restage4, restageprofile, restagefeedback, bubbleestrap,
19920         cleanstrap, unstrap, restrap, *compare, *compare3, *compare4,
19921         *compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1,
19922         stage2-start, stage2, stage3-start, stage3, stage4-start, stage4,
19923         stageprofile-start, stageprofile, stagefeedback-start, stagefeedback,
19924         risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove.
19925         (ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS.
19926         (STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES.
19927         (mostlyclean): Adjust.
19928         (clean, distclean): Don't mention bootstrap stuff.
19929         * configure: Regenerate.
19930         * ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in,
19931         java/config-lang.in, objc/config-lang.in, objcp/config-lang.in,
19932         treelang/config-lang.in (stagestuff): Remove.
19933         * doc/sourcebuild.texi (stage1, stage2, stage3, stage4,
19934         stageprofile, stagefeedback, stagestuff): Remove mention.
19935
19936 2007-01-11  Nick Clifton  <nickc@redhat.com>
19937
19938         * config/mcore/predicates.md (mcore_general_movesrc_operand):
19939         Accept CONSTs.
19940         (mcore_general_movdst_operand): Do not accept CONST_INTs.
19941         (mcore_arith_K_S_operand): Run the test for the S constraint not
19942         the test for the M constraint.
19943         (mcore_addsub_operand): Do not accept integer values that are
19944         larger than 32 bits.
19945         * config/mcore/mcore.md: Remove unused constraints from split.
19946         (andsi3): Use HOST_WIDE_INT instead of int to hold an INTVAL.
19947         (addsi3): Likewise.
19948         (allocate_stack): Likewise.
19949         * config/mcore/mcore.c (mcore_print_operand): Restrict output of P
19950         operands to 32 bits.
19951         (mcore_const_costs): Use HOST_WIDE_INT instead of int to hold an
19952         INTVAL.
19953         (mcore_and_cost, mcore_modify_comparison, const_ok_for_mcore,
19954         mcore_const_ok_for_inline, mcore_const_trick_uses_not,
19955         try_constant_tricks, mcore_num_ones, mcore_num_zeros,
19956         mcore_output_bclri, mcore_output_andn, output_inline_const,
19957         mcore_output_move, mcore_output_movedouble): Likewise.
19958         (mcore_output_cmov): Use CONST_OK_FOR_M and CONST_OK_FOR_N.
19959         (output_inline_const): Likewise.
19960         (output_inline_const): Fix format strings used in sprintf
19961         statements.
19962         * config/mcore/mcore-protos.h: Update prototypes for changed
19963         functions in mcore.c.
19964         * config/mcore/mcore.h (CONST_OK_FOR_I): Cast values to
19965         HOST_WIDE_INT and not int.
19966         (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M,
19967         CONST_OK_FOR_N): Likewise.
19968         (LEGITIMATE_CONSTANT_P): Also check CONSTANT_P.
19969         (GO_IF_LEGITIMATE_INDEX): Use HOST_WIDE_INT instead of int to hold
19970         an INTVAL.
19971
19972 2007-01-10  Jan Hubicka  <jh@suse.cz>
19973
19974         * tree-vrp.c (remove_range_assertions): Release defs.
19975         * tree-ssa-loop-ivopts.c (rmeove_statement): Likewise.
19976         * tree-ssa-dom.c (remove_stmt_or_phi): Likewise.
19977
19978 2007-01-10  Paul Brook  <paul@codesourcery.com>
19979
19980         * config/arm/arm.c (arm_rtx_costs_1): Handle mutiply-subtract.
19981         * config/arm/arm.md (mulsi3subsi): New insn.
19982
19983 2007-01-10  Zdenek Dvorak <dvorakz@suse.cz>
19984
19985         * tree-ssa-loop-manip.c (tree_unroll_loop): Make it a wrapper over ...
19986         (tree_transform_and_unroll_loop): New.
19987         * tree-flow.h (transform_callback, tree_transform_and_unroll_loop):
19988         Declare.
19989
19990 2007-01-10  Robert Kennedy <jimbob@google.com>
19991
19992         * fold-const.c (fold_comparison): Fold comparisons like (x *
19993         1000 < 0) to (x < 0).
19994
19995 2007-01-10  Ian Lance Taylor  <iant@google.com>
19996
19997         * tree-pretty-print.c (dump_generic_node): Print parentheses when
19998         operands have the same priority.
19999
20000 2007-01-10  Tom Tromey  <tromey@redhat.com>
20001
20002         * fold-const.c (fold_truthop): Don't check can_use_bit_fields_p.
20003         (fold_binary): Likewise.
20004         * langhooks.c (lhd_can_use_bit_fields_p): Removed.
20005         * langhooks-def.h (lhd_can_use_bit_fields_p): Removed.
20006         (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
20007         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CAN_USE_BIT_FIELDS_P.
20008         * langhooks.h (struct lang_hooks): Removed field
20009         'can_use_bit_fields_p'.
20010
20011 2007-01-10  Ralf Corsépius <ralf.corsepius@rtems.org>
20012
20013         * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.
20014
20015 2007-01-10  Razya Ladelsky  <razya@il.ibm.com>
20016
20017         * function.c (get_last_funcdef_no): New function.
20018         * function.h (get_last_funcdef_no): Declare.
20019         * tree-inline.c (initialize_cfun): Add initialization.
20020         (tree_function_versioning): Cleanup.
20021
20022 2007-01-10  Jan Hubicka  <jh@suse.cz>
20023
20024         * tree-inline.c (setup_one_parameter): Do not propagate into abnormal
20025         PHIs.
20026
20027 2007-01-10  Sa Liu  <saliu@de.ibm.com>
20028             Ben Elliston  <bje@au.ibm.com>
20029
20030         * spu.h (STACK_SAVE_AREA): Use VOIDmode for SAVE_FUNCTION, SImode
20031         for SAVE_NONLOCAL and Pmode for any other save level.
20032         * spu-protos.h (spu_restore_stack_block): Declare.
20033         * spu.md (save_stack_block): Remove.
20034         (restore_stack_block): Call spu_restore_stack_block.
20035         * spu.c (spu_restore_stack_block): New function.
20036         (spu_expand_epilogue): Remove old comment.
20037
20038 2007-01-09  Zdenek Dvorak <dvorakz@suse.cz>
20039
20040         PR tree-optimization/30322
20041         * tree-ssa-loop-ivopts.c (fold_affine_expr, iv_value): Removed.
20042         (cand_value_at): Return the value as aff_tree.
20043         (may_eliminate_iv): Convert the bound from aff_tree to tree.
20044         * tree-affine.c (aff_combination_add_cst, aff_combination_add_product,
20045         aff_combination_mult): New functions.
20046         (aff_combination_add): Use aff_combination_add_cst.
20047         (aff_combination_convert): Allow conversions to a wider type.
20048         (tree_to_aff_combination): Handle BIT_NOT_EXPR.
20049         * tree-affine.h (aff_combination_mult): Declare.
20050
20051 2007-01-09  Carlos O'Donell  <carlos@codesourcery.com>
20052
20053         * doc/tm.texi: Update documentation to reflect reality of exec
20054         and start file search behaviours. Update copyright year.
20055         * doc/invoke.texi: Explain how GCC_EXEC_PREFIX is used to find
20056         header file directories.
20057
20058 2007-01-09  Uros Bizjak  <ubizjak@gmail.com>
20059
20060         * config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387.
20061         (*cosxf2): Rename to cosxf2_i387.
20062         (*sindf2, *sinsf2): Extend operand 1 to XFmode.  Macroize patterns
20063         using X87MODEF12 mode macro. Rename patterns to
20064         *sin_extend<mode>xf2_i387.  Use SSE_FLOAT_MODE_P to disable patterns
20065         for SSE math.
20066         (*cosdf2, *cossf2): Ditto.
20067         (sincosdf3, sincossf3): Ditto.  Rewrite corresponding splitters
20068         to match extended input operands.
20069         (sincos<mode>3): New expander.
20070         (*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove
20071         insn patterns and corresponding splitters.
20072
20073 2007-01-09  Kaz Kojima  <kkojima@gcc.gnu.org>
20074
20075         * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete.
20076         (SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise.
20077
20078 2007-01-09  Nicolas Pitre  <nico@cam.org>
20079
20080         PR target/30173
20081         * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
20082
20083 2007-01-08  Geoffrey Keating  <geoffk@apple.com>
20084
20085         * target.h (struct gcc_target): New field library_rtti_comdat.
20086         * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
20087         (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
20088         * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
20089         * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
20090
20091 2007-01-08  Geoffrey Keating  <geoffk@apple.com>
20092
20093         * doc/invoke.texi (Optimize Options): Correct description of -O0.
20094
20095 2007-01-08  Richard Guenther  <rguenther@suse.de>
20096
20097         * tree.h (force_fit_type_double): Export.
20098         (force_fit_type): Remove.
20099         * fold-const.c (force_fit_type_double): New function.
20100         (force_fit_type): Remove.
20101         (int_const_binop): Use it.
20102         (fold_convert_const_int_from_int): Likewise.
20103         (fold_convert_const_int_from_real): Likewise.
20104         (fold_div_compare): Likewise.
20105         (fold_sign_changed_comparison): Likewise.
20106         (fold_unary): Likewise.
20107         (fold_negate_const): Likewise.
20108         (fold_abs_const): Likewise.
20109         (fold_not_const): Likewise.
20110         * c-common.c (shorten_compare): Use force_fit_type_double.
20111         * convert.c (convert_to_pointer): Likewise.
20112
20113 2007-01-08  Richard Guenther  <rguenther@suse.de>
20114
20115         * tree.h (build_int_cst_wide_type): Export.
20116         * tree.c (build_int_cst_wide_type): New function.
20117         (build_int_cst_wide): Fix comment.
20118         * builtins.c (fold_builtin_object_size): Use build_int_cst
20119         to build -1 or 0 of the correct type.  Use fit_double_type
20120         to check for overflow.
20121         * fold-const.c (optimize_bit_field_compare): Use build_int_cst_type
20122         to build the mask.
20123         (decode_field_reference): Likewise.
20124         (all_ones_mask_p): Likewise.
20125         (native_interpret_int): Use build_int_cst_wide_type.
20126         (fold_binary): Use build_int_cst_type to build an all-ones
20127         value.
20128         * stor-layout.c (set_sizetype): Use build_int_cst_wide_type.
20129
20130 2007-01-08  Daniel Jacobowitz  <dan@codesourcery.com>
20131
20132         * config/pa/t-pa64 (libgcc_stub.a): Use $(T).
20133
20134 2007-01-09  Ben Elliston  <bje@au.ibm.com>
20135
20136         * genautomata.c (STATS_OPTION): New option.
20137         (stats_flag): New flag.
20138         (gen_automata_option): Handle it.
20139         (initiate_automaton_gen): Ditto.
20140         (write_automata): Output statistics only if stats_flag is
20141         set. Likewise, output time statistics only if time_flag is set.
20142         * doc/md.texi (Processor pipeline description): Document new flag.
20143
20144 2007-01-08  Richard Guenther  <rguenther@suse.de>
20145
20146         * builtins.c (fold_builtin_int_roundingfn): Use fit_double_type.
20147         * tree.c (build_int_cst_type): Likewise.
20148         (size_in_bytes): Don't call force_fit_type on the result.
20149         (int_fits_type_p): Use fit_double_type.
20150         * fold-const.c (fit_double_type): New function.
20151         (force_fit_type): Use it.
20152         * tree.h (fit_double_type): Export.
20153
20154 2007-01-08  Jan Hubicka  <jh@suse.cz>
20155
20156         * tree-vectorizer.c (gate_increase_alignment): Fix return type.
20157         * ipa.c (function_and_variable_visibility): Fix return type.
20158
20159 2007-01-08  Richard Guenther  <rguenther@suse.de>
20160
20161         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type
20162         of offset to build the index.
20163         * tree-pretty-print.c (dump_generic_node): Don't build negated
20164         const just for printing.
20165         * c-pretty-print.c (pp_c_integer_constant): Likewise.
20166         * builtins.c (fold_builtin_int_roundingfn): Check if result
20167         fits the type by using force_fit_type and comparing the result.
20168         * predict.c (predict_loops): Use compare_tree_int for comparison.
20169         * tree.c (build_int_cst): Fall back to integer_type_node for
20170         NULL_TREE type.
20171         (build_int_cst_wide): Assert type is non-null.
20172
20173 2007-01-08  Roberto Costa  <roberto.costa@st.com>
20174
20175         * tree-vrp.c (extract_range_from_cond_expr): New.
20176         (extract_range_from_expr): Handle COND_EXPR nodes used as expressions.
20177         * tree-ssa-ccp.c (get_maxval_strlen): Handle COND_EXPR nodes used
20178         as expressions.
20179         (fold_stmt): Bug fix, avoid infinite recursion when folding COND_EXPRs.
20180         * tree-ssa-forwprop.c (simplify_cond, forward_propagate_into_cond,
20181         tree_ssa_forward_propagate_single_use_vars): Handle COND_EXPR nodes
20182         used as expressions.
20183         * tree-object-size.c (cond_expr_object_size): New.
20184         (collect_object_sizes_for): Handle COND_EXPR nodes used as expressions.
20185
20186 2007-01-08  Jan Hubicka  <jh@suse.cz>
20187
20188         * tree-ssa-forwprop.c (forward_propagate_into_cond,
20189         tree_ssa_forward_propagate_single_use_va): Release defs of propagated
20190         statement.
20191
20192 2007-01-08  Richard Guenther  <rguenther@suse.de>
20193
20194         PR tree-optimization/23603
20195         * tree-vrp.c (set_value_range_to_truthvalue): New function.
20196         (extract_range_from_binary): Fall back to truthvalue instead of
20197         varying for TRUTH_*_EXPR.
20198         (extract_range_from_comparison): Fall back to truthvalue instead of
20199         varying.
20200         (vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF
20201         if all visited PHI values were constant.
20202
20203 2007-01-08  Jan Hubicka  <jh@suse.cz>
20204
20205         * cgraphunit.c (cgraph_process_new_functions): Reset reachable flag.
20206         (cgraph_analyze_function): break out from ...
20207         (cgraph_finalize_compilation_unit): ... here.
20208         (cgraph_expand_function): Remove forgoten commented out line.
20209         (cgraph_optimize): Analyze functions.
20210
20211 2007-01-08  Jan Hubicka  <jh@suse.cz>
20212
20213         * tree-pas.h (TODO_remove_function): New flag.
20214         (TODO_update*): Renumber.
20215         (pass_ipa_increase_alignment,
20216         pass_ipa_function_and_variable_visibility): New passes.
20217         * cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c
20218         (cgraph_function_and_variable_visibility): Move to ipa.c
20219         (cgraph_optimize): Don't call cgraph_function_and_variable_visibility,
20220         cgraph_increase_alignment.
20221         * ipa-inline.c (cgraph_decide_inlining): Don't push timevar.
20222         (cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before
20223         calling tree-inline.
20224         (cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes.
20225         (pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions
20226         * tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c
20227         (gate_increase_alignment): New function.
20228         (pass_ipa_increase_alignment): New pass.
20229         * ipa.c: Inline tree-pass.h and timevar.h
20230         (function_and_variable_visibility): Move here from cgraphunit.c
20231         * tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions.
20232         * passes.c (init_optimization_passes): Add the two new passes.
20233         (execute_todo): Handle cgraph_remove_functions.
20234
20235 2007-01-08  Nick Clifton  <nickc@redhat.com>
20236
20237         * config/frv/predicates.md (reg_or_0_operand): Accept
20238         CONST_DOUBLEs.
20239
20240 2007-01-08  Ralf Corsépius <ralf.corsepius@rtems.org>
20241
20242         * config/bfin/rtems.h, config/bfin/t-rtems: New.
20243         * config.gcc: Add bfin*-rtems*.
20244
20245 2007-01-08  Mark Shinwell  <shinwell@codesourcery.com>
20246
20247         * c.opt: Add -flax-vector-conversions.
20248         * c-typeck.c (convert_for_assignment): Pass flag to
20249         vector_types_convertible_p to allow emission of note.
20250         (digest_init): Likewise.
20251         * c-opts.c: Handle -flax-vector-conversions.
20252         * c-common.c (flag_lax_vector_conversions): New.
20253         (vector_types_convertible_p): Unless -flax-vector conversions
20254         has been passed, disallow conversions between vectors with
20255         differing numbers of subparts and/or element types.  If such
20256         a conversion is disallowed, possibly emit a note on the first
20257         occasion only to inform the user of -flax-vector-conversions.
20258         The new last argument specifies this.
20259         * c-common.h (flag_lax_vector_conversions): New.
20260         (vector_types_convertible_p): Add extra argument.
20261         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
20262         char_type_node for V*QI type vectors.
20263         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
20264         Update to satisfy new typechecking rules.
20265         * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both
20266         C and C++ variants.
20267         * doc/invoke.texi (C Dialect Options): Document
20268         -flax-vector-conversions.
20269
20270 2007-01-08  Mark Shinwell  <shinwell@codesourcery.com>
20271
20272         PR tree-optimization/29877
20273         * tree-ssa-ter.c (is_replaceable_p): Deem assignments with
20274         a register variable on the RHS to not be replaceable.
20275
20276 2007-01-08  Chen Liqin  <liqin@sunnorth.com.cn>
20277         * config/score/t-score-elf (MULTILIB_OPTIONS): Change.
20278         * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
20279         const_simm15, const_pow2, const_npow2): Added.
20280         * config/score/misc.md (insv, extv, extzv, movmemsi,
20281         move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
20282         * config/score/score.c (score_address_cost, score_select_cc_mode):
20283         Added.
20284         Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
20285         Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
20286         Update score_print_operand.
20287         * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
20288         Adjust register allocate order and update some macro define.
20289         * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
20290         mdx_block_move_straight, mdx_block_move_loop_head,
20291         mdx_block_move_loop_body, mdx_block_move_loop_foot,
20292         mdx_block_move_loop, mdx_block_move): Added.
20293         (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
20294         mdp_limm): Updated and fix some bug and typo.
20295         * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
20296         (movsf, movdf, doloop_end): Added.
20297
20298 2007-01-08  Kazu Hirata  <kazu@codesourcery.com>
20299
20300         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
20301         config/arm/thumb2.md: Fix comment typos.
20302         * doc/extend.texi: Fix a typo.
20303
20304 2007-01-07  Eric Christopher  <echristo@apple.com>
20305
20306         * configure.ac: Check for __stack_chk_fail for darwin.
20307         * configure: Regenerate.
20308
20309 2007-01-07  Richard Guenther  <rguenther@suse.de>
20310
20311         * tree-vrp.c (extract_range_from_assert): CSE calls to
20312         compare_values where possible.
20313         (extract_range_from_unary_expr): Likewise.
20314
20315 2007-01-07  Anatoly Sokolov <aesok@post.ru>
20316
20317         * config/avr/avr-protos.h (call_insn_operand): Delete prototype.
20318         * config/avr/avr.c (call_insn_operand): Delete function.
20319         * config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP
20320         instead of register number. Use predicates.
20321         * config/avr/predicates.md (const0_operand, reg_or_0_operand,
20322         call_insn_operand): Add.
20323
20324 2007-01-06  Jan Hubicka  <jh@suse.cz>
20325
20326         * tree-pass.h (pass_build_cgraph_edges): Declare.
20327         * cgraphunit.c (record_refernece): Move to cgraphbuild.c
20328         (visited_nodes): Remove.
20329         (cgraph_create_edges): Move to cgraphbuild.c; rename to
20330         build_cgrpah_edges; make visited_nodes local.
20331         (cgraph_process_new_functions): DO not call initialize_inline_failed.
20332         (record_references_in_initializer): Move to cgraphbuild.c
20333         (initialize_inline_failed, rebuild_cgraph_edges,
20334         pass_rebuild_cgraph_edges): Move to cgraphbuild.c.
20335         (verify_cgraph_node): Make visited_nodes local.
20336         (cgraph_analyze_function): Do not call cgraph_create_edges and
20337         initialize_inline_failed.
20338         (cgraph_expand_function): Do not call cgraph_lower_function;
20339         assert that function is already lowered.
20340         * Makefile.in (cgraphbuild.o): New.
20341         * passes.c (init_optimization_passes): Add pass_build_cgraph_edges
20342         at the end of lowering passes.
20343
20344 2007-01-06  Steven Bosscher  <steven@gcc.gnu.org>
20345
20346         * ifcvt.c (cond_move_convert_if_block): New function, code
20347         factored out from...
20348         (cond_move_process_if_block): ...here.  Call the new function
20349         on the THEN and ELSE blocks.
20350         (merge_if_block): Do not copy global_live_at_end, merge_blocks
20351         already takes care of this.
20352
20353 2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20354
20355         PR c/19978
20356         * tree.h (TREE_OVERFLOW_P): New.
20357         * c-typeck.c (parser_build_unary_op): Warn only if result
20358         overflowed and operands did not.
20359         (parser_build_binary_op): Likewise.
20360         (convert_for_assignment): Remove redundant overflow_warning.
20361         * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.
20362
20363 2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20364
20365         * c-typeck.c (store_init_value): Split over two lines to follow
20366         the GNU coding style.
20367
20368 2007-01-05  Benjamin Kosnik  <bkoz@redhat.com>
20369
20370         * c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to
20371         __GXX_EXPERIMENTAL_CXX0X__.
20372         * doc/cpp.texi: Same.
20373
20374 2007-01-05  Richard Guenther  <rguenther@suse.de>
20375
20376         PR middle-end/27826
20377         * tree.c (get_narrower): Do not construct COMPONENT_REFs
20378         with mismatched types.  Instead explicitly build a
20379         conversion NOP_EXPR.
20380
20381 2007-01-05  Ian Lance Taylor  <iant@google.com>
20382
20383         * c-common.c (decl_with_nonnull_addr_p): New function.
20384         (c_common_truthvalue_conversion): Call it.
20385         * c-typeck.c (build_binary_op): Likewise.
20386         * c-common.h (decl_with_nonnull_addr_p): Declare.
20387
20388 2007-01-05  Jakub Jelinek  <jakub@redhat.com>
20389
20390         PR c/30360
20391         * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
20392         denom against 0.0.
20393
20394 2007-01-05  Joel Brobecker  <brobecker@adacore.com>
20395
20396         * doc/install.texi (Final install): Document the fact that
20397         the GNAT runtime should not be stripped.
20398
20399 2007-01-04  Jan Hubicka  <jh@suse.cz>
20400
20401         * tree-inline.c (fold_marked_statements): Update operand caches
20402         and EH after folding
20403
20404 2007-01-04  Ian Lance Taylor  <iant@google.com>
20405
20406         * c-common.c (check_function_nonnull): Whitespace fix.
20407
20408 2007-01-04  Jan Hubicka  <jh@suse.cz>
20409
20410         * tree-optimize.c (execute_fixup_cfg): Correct previously mistakely
20411         comitted older version of patch.
20412         (pass_fixup_cfg): Add TODOs to verify flow and statements, dump
20413         function, celanup cfg and collect garbage.
20414
20415 2007-01-04  Mike Stump  <mrs@apple.com>
20416
20417         * Makefile.in (mostlyclean): Don't remove libgcc anymore.
20418         (clean): Likewise.
20419
20420 2007-01-04  Eric Christopher  <echristo@apple.com>
20421
20422         * libgcc2.c (__bswapsi2): Use SItype.
20423         (__bswapdi2): Use DItype.
20424         * libgcc2.h: Update for above.
20425
20426 2007-01-04  Paul Brook  <paul@codesourcery.com>
20427
20428         * config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0,
20429         mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0,
20430         mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3,
20431         umulsidi3, umulsidi3adddi, smulsi3_highpart,
20432         umulsi3_highpart): Make conditional on !arm_arch6.
20433         (arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6,
20434         mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6,
20435         mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6,
20436         umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6,
20437         umulsi3_highpart_v6): New insns.
20438
20439 2007-01-04  Roger Sayle  <roger@eyesopen.com>
20440
20441         * fold-const.c (fold_convert): When casting an expression to void,
20442         fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't
20443         have a type.  Instead of attempting to build a NOP_EXPR, return
20444         these "special" trees directly.
20445
20446 2007-01-04  Joseph Myers  <joseph@codesourcery.com>
20447
20448         * config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
20449         MULT inside MINUS as either argument.  Use rs6000_cost->dmul -
20450         rs6000_cost->fp not 0 as adjustment for outer NEG.
20451
20452 2007-01-04  Jan Hubicka  <jh@suse.cz>
20453
20454         * cgraph.c (cgraph_release_function_body): New function.
20455         (cgraph_remove_node): Use it.
20456         * cgraph.h (cgraph_release_function_body): Declare.
20457         * cgraphunit.c (cgraph_expand_function): Use it.
20458         * ipa.c (cgraph_remove_unreahchable_nodes): Use it.
20459         * tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing
20460         is initialized and while compilation of other function is running.
20461         * tree-optimize.c (execute_free_cfg_annotations): Move code to clear
20462         statement CFG annotations from here to ...
20463         * tree-cfg.c (delete_tree_cfg_annotations): ... here.
20464
20465 2007-01-04  Zdenek Dvorak <dvorakz@suse.cz>
20466
20467         * cfgloop.h (enum li_flags): Make the constants powers of two.
20468
20469 2007-01-04  Jan Hubicka  <jh@suse.cz>
20470
20471         * tree-inline.c (copy_bb): Insert new statements to statements_to_fold
20472         set.
20473         (fold_marked_statements): New function.
20474         (optimize_inline_calls, tree_function_versioning): Fold new statements.
20475         * tree-inline.h (copy_body_data): Add statements_to_fold.
20476
20477 2007-01-03  Daniel Jacobowitz  <dan@codesourcery.com>
20478
20479         * config.gcc: Mention libgcc/config.host.
20480         * Makefile.in: Update comments mentioning libgcc.
20481         (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete.
20482         (all.cross, start.encap, rest.encap, rest.cross): Update
20483         dependencies for libgcc move.
20484         (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib)
20485         (clean-target, clean-target-libgcc): Delete.
20486         (srcdirify, GCC_EXTRA_PARTS): New macros.
20487         (libgcc-support, libgcc.mvars): New rules.
20488         (distclean): Remove mention of mklibgcc.
20489         (install): Don't reference INSTALL_LIBGCC.
20490         (install-common): Don't reference EXTRA_PARTS.
20491         (install-libgcc, install-multilib): Delete rules.
20492         * mklibgcc.in: Delete file.
20493         * doc/configfiles.texi: Don't mention mklibgcc.
20494
20495         * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc).
20496         * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise.
20497         * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise.
20498         * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES)
20499         (mklibgcc, ldblspecs): Likewise.
20500
20501         * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def)
20502         (posixpre.def): Use $(T).
20503         (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP)
20504         (SHLIB_SRC, SHLIB_INSTALL): Delete.
20505         (SHLIB_LINK): Make dummy.
20506         * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK.
20507
20508         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear.
20509
20510         * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS.
20511         * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30,
20512         config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos,
20513         config/rs6000/t-newas, config/sparc/t-elf: Likewise.
20514
20515         * configure.ac (all_outputs): Remove mklibgcc.
20516         * configure: Regenerated.
20517
20518 2007-01-03  Josh Conner  <jconner@apple.com>
20519
20520         PR middle-end/29683
20521         * calls.c (compute_argument_addresses): Set stack and stack_slot
20522         for partial args, too.
20523         (store_one_arg): Use locate.size.constant for the size when
20524         generating a save_area.
20525
20526 2007-01-03  Robert Kennedy <jimbob@google.com>
20527
20528         * tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results
20529         whose definitions are deleted due to basic block merging.
20530
20531 2007-01-03  Paul Brook  <paul@codesourcery.com>
20532
20533         PR target/16634
20534         * config/arm/arm.c (output_return_instruction): Pop PC in interrupt
20535         functions.
20536         (use_return_insn): Return 0 for Thumb interrupt functions.
20537         (print_multi_reg): Add rfe argument for IRQ returns.
20538         (arm_output_epilogue): Pop interrupt return address directly into PC.
20539         (arm_expand_prologue): Only adjust IRQ return address in Arm mode.
20540
20541 2007-01-03  Paul Brook  <paul@codesourcery.com>
20542
20543         Merge from sourcerygxx-4_1.
20544         * config/arm/thumb2.md: New file.
20545         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for
20546         Thumb-2.
20547         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto.
20548         * config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
20549         (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables.
20550         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump
20551         tables.
20552         (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
20553         * config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm
20554         comptibility.
20555         * config/arm/ieee754-sf.S: Ditto.
20556         * config/arm/arm.c (thumb_base_register_rtx_p): Rename...
20557         (thumb1_base_register_rtx_p): ... to this.
20558         (thumb_index_register_rtx_p): Rename...
20559         (thumb1_index_register_rtx_p): ... to this.
20560         (thumb_output_function_prologue): Rename...
20561         (thumb1_output_function_prologue): ... to this.
20562         (thumb_legitimate_address_p): Rename...
20563         (thumb1_legitimate_address_p): ... to this.
20564         (thumb_rtx_costs): Rename...
20565         (thumb1_rtx_costs): ... to this.
20566         (thumb_compute_save_reg_mask): Rename...
20567         (thumb1_compute_save_reg_mask): ... to this.
20568         (thumb_final_prescan_insn): Rename...
20569         (thumb1_final_prescan_insn): ... to this.
20570         (thumb_expand_epilogue): Rename...
20571         (thumb1_expand_epilogue): ... to this.
20572         (arm_unwind_emit_stm): Rename...
20573         (arm_unwind_emit_sequence): ... to this.
20574         (thumb2_legitimate_index_p, thumb2_legitimate_address_p,
20575         thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec,
20576         thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem,
20577         arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition,
20578         thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift,
20579         thumb2_output_casesi): New functions.
20580         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define.
20581         (FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7,
20582         FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME,
20583         THUMB2_WORK_REGS): Define.
20584         (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count,
20585         arm_condexec_mask, arm_condexec_masklen)): New variables.
20586         (all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m.
20587         (arm_override_options): Check new CPU capabilities.
20588         Set new architecture flag variables.
20589         (arm_isr_value): Handle v7m interrupt functions.
20590         (user_return_insn): Return 0 for v7m interrupt functions.  Handle
20591         Thumb-2.
20592         (const_ok_for_arm): Handle Thumb-2 constants.
20593         (arm_gen_constant): Ditto.  Use movw when available.
20594         (arm_function_ok_for_sibcall): Return false for v7m interrupt
20595         functions.
20596         (legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2.
20597         (thumb_find_work_register, arm_load_pic_register,
20598         legitimize_tls_address, arm_address_cost, load_multiple_sequence,
20599         emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size,
20600         print_multi_reg, output_mov_long_double_fpa_from_arm,
20601         output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm,
20602         output_mov_double_fpa_from_arm, output_move_double,
20603         arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask,
20604         output_return_instruction, arm_output_function_prologue,
20605         arm_output_epilogue, arm_get_frame_offsets, arm_regno_class,
20606         arm_output_mi_thunk, thumb_set_return_address): Ditto.
20607         (arm_expand_prologue): Handle Thumb-2.  Use arm_save_coproc_regs.
20608         (arm_coproc_mem_operand): Allow POST_INC/PRE_DEC.
20609         (arithmetic_instr, shift_op): Use arm_shift_nmem.
20610         (arm_print_operand): Use arm_print_condition.  Handle '(', ')', '.',
20611         '!' and 'L'.
20612         (arm_final_prescan_insn): Use extract_constrain_insn_cached.
20613         (thumb_expand_prologue): Use thumb_set_frame_pointer.
20614         (arm_file_start): Output directive for unified syntax.
20615         (arm_unwind_emit_set): Handle stack alignment instruction.
20616         * config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__.
20617         Add v6t2, v7, v7a, v7r and v7m.
20618         (RETLDM): Add Thumb-2 code.
20619         (do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros.
20620         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__.
20621         (TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY,
20622         TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN,
20623         THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS,
20624         ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS,
20625         THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE,
20626         CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END,
20627         ADJUST_INSN_LENGTH): Define.
20628         (TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE,
20629         STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS,
20630         BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES,
20631         PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS,
20632         SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
20633         TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT,
20634         HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP,
20635         HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG,
20636         REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P,
20637         REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
20638         LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS,
20639         GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST,
20640         ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME,
20641         FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P,
20642         PRINT_OPERAND_ADDRESS): Adjust for Thumb-2.
20643         (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations.
20644         * config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and
20645         cortex-m3.
20646         * config/arm/arm-tune.md: Regenerate.
20647         * config/arm/arm-protos.h: Update prototypes.
20648         * config/arm/vfp.md: Enable patterns for Thumb-2.
20649         (arm_movsi_vfp): Add movw alternative.  Use output_move_vfp.
20650         (arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp.
20651         (thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp,
20652         thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New.
20653         * config/arm/libunwind.S: Add Thumb-2 code.
20654         * config/arm/constraints.md: Update include Thumb-2.
20655         * config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support.
20656         * config/arm/ieee754-df.S: Ditto.
20657         * config/arm/bpabi.S: Ditto.
20658         * config/arm/t-arm (MD_INCLUDES): Add thumb2.md.
20659         * config/arm/predicates.md (low_register_operand,
20660         low_reg_or_int_operand, thumb_16bit_operator): New.
20661         (thumb_cmp_operand, thumb_cmpneg_operand): Rename...
20662         (thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this.
20663         * config/arm/t-arm-elf: Add armv7 multilib.
20664         * config/arm/arm.md: Update patterns for Thumb-2 and Unified asm.
20665         Include thumb2.md.
20666         (UNSPEC_STACK_ALIGN, ce_count): New.
20667         (arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3,
20668         arm_zero_extendsidi2, arm_zero_extendqidi2): New
20669         insns/expanders.
20670         * config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm.
20671         (thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa,
20672         thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns.
20673         * config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm.
20674         (cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn,
20675         thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New
20676         insns.
20677         * doc/extend.texi: Document ARMv7-M interrupt functions.
20678         * doc/invoke.texi: Document Thumb-2 new cores+architectures.
20679
20680 2007-01-03  Jakub Jelinek  <jakub@redhat.com>
20681
20682         * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
20683         (struct _Unwind_Context): Rename args_size to flags, remove
20684         signal_frame field, add a new args_size field and version field.
20685         (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
20686         _Unwind_IsExtendedContext): New inline functions.
20687         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
20688         Assume by_value array is only present if _Unwind_IsExtendedContext.
20689         (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
20690         _Unwind_IsSignalFrame.
20691         (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
20692         (uw_update_context_1): Use _Unwind_SetSignalFrame.
20693         (uw_init_context_1): Initialize context->flags to
20694         EXTENDED_CONTEXT_BIT.
20695         * config/rs6000/linux-unwind.h (frob_update_context): Use
20696         _Unwind_SetSignalFrame.
20697
20698 2007-01-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20699
20700         PR middle-end/30353
20701         * gimplify.c (gimplify_modify_expr_complex_part): Move below
20702         tree_to_gimple_tuple.  Call tree_to_gimple_tuple when we need
20703         the value.
20704
20705 2007-01-03  Kazu Hirata  <kazu@codesourcery.com>
20706
20707         * config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P,
20708         REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER,
20709         RET, AT_SP): Remove.
20710         * config/i386/i386.md (*sse_prologue_save_insn): Use return
20711         instead of RET.
20712
20713         * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
20714         * cfgbuild.c (find_basic_blocks): Likewise.
20715         * cfgrtl.c (rtl_create_basic_block): Likewise.
20716         * function.c (temp_slots_at_level): Likewise.
20717         * reg-stack.c (stack_regs_mentioned): Likewise.
20718         * regclass.c (allocate_reg_info): Likewise.
20719         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
20720         set_bb_for_stmt, move_block_to_fn): Likewise.
20721         * tree-complex.c (tree_lower_complex): Likewise.
20722         * vec.h (VEC_safe_grow_cleared): New.
20723
20724         * cgraphunit.c, tree-ssa-alias.c: Fix comment typos.
20725
20726 2007-01-03  Zdenek Dvorak <dvorakz@suse.cz>
20727
20728         * loop-unswitch.c (unswitch_loop): Pass probabilities to loopify.
20729         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities
20730         to loop_version.
20731         * cfgloopmanip.c (scale_loop_frequencies): Export.
20732         (loopify): Scale the frequencies by prescribed coefficients.
20733         (set_zero_probability): New function.
20734         (duplicate_loop_to_header_edge): Improve updating of frequencies.
20735         (lv_adjust_loop_entry_edge, loop_version): Set probabilities
20736         and frequencies according to arguments.
20737         * tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities
20738         correctly.
20739         * cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up.
20740         * modulo-sched.c (sms_schedule): Set probabilities for entering
20741         versioned loop correctly.
20742         * tree-vect-transform.c (vect_transform_loop): Ditto.
20743         * cfgloop.h (loopify, loop_version): Declaration changed.
20744         (scale_loop_frequencies): Declared.
20745
20746 2007-01-02  Jan Hubicka  <jh@suse.cz>
20747
20748         * cgraph.c: Include tree-flow.h
20749         (cgraph_add_new-function): Handle IPA_SSA mode; execute
20750         early_local_passes.
20751         * cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA.
20752         * tree-pass.h (pass_all_early_optimizations): Declare.
20753         * cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute
20754         early_local_passes.
20755         (cgraph_analyze_function): Do early_local_passes.
20756         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
20757         Do not add referenced vars.
20758         * tree-optimize.c (gate_all_optimizations): Do not execute when not in
20759         SSA form.
20760         (gate_all_early_local_passes): New gate.
20761         (pass_early_local_passes): Use new gate.
20762         (execute_early_local_optimizations): New functions.
20763         (gate_all_early_optimizations): New gate.
20764         (pass_all_early_optimizations): New pass.
20765         (execute_free_datastructures): Free SSA only when initialized.
20766         (gate_init_datastructures): Init only when optimizing.
20767         (tree_lowering_passes): Do early local passes when called late.
20768         * tree-profile.c (do_tree_profiling): Don't profile functions added
20769         late.
20770         (do_early_tree_profiling, pass_early_tree_profile): Kill.
20771         * tree-cfg.c (update_modified_stmts): Do not update when operands are
20772         not active.
20773         * passes.c (init_optimizations_passes): Reorder so we go into SSA
20774         during early_local_passes.
20775         * Makefile.in (cgraph.o): Add dependency on tree-flow.h.
20776
20777
20778 2007-01-02  Carlos O'Donell  <carlos@codesourcery.com>
20779
20780         * Makefile.in: Update copyright year.
20781
20782 2007-01-02  Carlos O'Donell  <carlos@codesourcery.com>
20783
20784         * Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST)
20785         in $(lang_checks) and check-consistency targets.
20786
20787 2007-01-02  Jan Hubicka  <jh@suse.cz>
20788
20789         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
20790         Do not add referenced vars.
20791         * tree-cfg.c (update_modified_stmts): Do not update when SSA operands
20792         are not active.
20793         * passes.c (init_optimization_passes): Put mudflap_2 after
20794         free_datastructures.
20795
20796 2007-01-02  Jan Hubicka  <jh@suse.cz>
20797
20798         * tree-optimize (execute_fixup_cfg): Set after_inlining flag.
20799         Set NOTHROW flag on call statements proved to be nothrow.
20800         Update statement of local calls so new pure/const functions are
20801         updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal
20802         goto receivers.
20803         (tree_rest_of_compilation): Register hooks and initialize bitmap
20804         early. Do not set after_inlining flag.
20805
20806 2007-01-02  Steve Ellcey  <sje@cup.hp.com>
20807
20808         * sbitmap.c (HOST_BITS_PER_LONG_LONG):  Change to
20809         HOST_BITS_PER_LONGLONG
20810
20811 2007-01-02  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
20812
20813         PR c/19977
20814         * c-typeck.c (store_init_value): Don't emit pedantic overflow
20815         warning for non-static initializers.
20816
20817 2007-01-02  Steven Bosscher  <steven@gcc.gnu.org>
20818
20819         * config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
20820         m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c,
20821         rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c:
20822         Always use set_unique_reg_note to add REG_EQUAL notes.
20823
20824 2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
20825
20826         Revert:
20827         2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
20828
20829         * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
20830         * cfgbuild.c (find_basic_blocks): Likewise.
20831         * cfgrtl.c (rtl_create_basic_block): Likewise.
20832         * function.c (temp_slots_at_level): Likewise.
20833         * reg-stack.c (stack_regs_mentioned): Likewise.
20834         * regclass.c (allocate_reg_info): Likewise.
20835         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
20836         set_bb_for_stmt, move_block_to_fn): Likewise.
20837         * tree-complex.c (tree_lower_complex): Likewise.
20838         * vec.h (VEC_safe_grow_cleared): New.
20839
20840 2007-01-02  Ian Lance Taylor  <iant@google.com>
20841
20842         * c-common.c (c_common_truthvalue_conversion): When warning about
20843         using an assignment as a truth value, set TREE_NO_WARNING.
20844
20845 2007-01-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20846
20847         PR middle-end/7651
20848         * c.opt (Wold-style-declaration): New.
20849         * doc/invoke.texi (C-only Warning Options): New.
20850         (Wold-style-declaration): Document it.
20851         (Wextra): Enabled by -Wextra.
20852         * c-opts.c (c_common_post_options): Enabled by -Wextra.
20853         * c-decl.c (declspecs_add_scspec): Replace -Wextra with
20854         -Wold-style-declaration.
20855
20856 2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
20857
20858         * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
20859         * cfgbuild.c (find_basic_blocks): Likewise.
20860         * cfgrtl.c (rtl_create_basic_block): Likewise.
20861         * function.c (temp_slots_at_level): Likewise.
20862         * reg-stack.c (stack_regs_mentioned): Likewise.
20863         * regclass.c (allocate_reg_info): Likewise.
20864         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
20865         set_bb_for_stmt, move_block_to_fn): Likewise.
20866         * tree-complex.c (tree_lower_complex): Likewise.
20867         * vec.h (VEC_safe_grow_cleared): New.
20868
20869 2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
20870
20871         * c-common.c (c_common_nodes_and_builtins): Since variants of
20872         void_type_node get built before it is given a name, we need to
20873         give those variants the name, too.
20874         (complete_array_type): We need to work with the canonical main
20875         type of the array, from which we will build the qualified version.
20876         * params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
20877         * print-tree.c (print_node): Display canonical type information
20878         for each type.
20879         * stor-layout.c (layout_type): When we don't know the
20880         alignment of a type for which we're building an array, we end up
20881         guessing wrong, so make the type require structural equality.
20882         * tree.c (make_node_stat): When we build a new type, it is its
20883         own canonical type.
20884         (build_type_attribute_qual_variant): When building an attribute
20885         variant, its canonical type is the non-attribute variant. However,
20886         if the attributes are target-dependent and they differ, we need to
20887         use structural equality checks for this type.
20888         (build_qualified_type): A qualified type is not equivalent to its
20889         unqualified variant; set the canonical type appropriately.
20890         (build_distinct_type_copy): When building a distinct type from
20891         another type, the new type is its own canonical type.
20892         (build_variant_type_copy): When building a new type variant, we
20893         assume that it is equivalent to the original type.
20894         (build_pointer_type_for_mode): When building a pointer type, also
20895         build a canonical type pointer.
20896         (build_reference_type_for_mode): When building a reference type,
20897         also build a canonical type reference.
20898         (build_index_type): When we can't hash an index type (e.g.,
20899         because its maximum value is negative), the index type requires
20900         structural equality tests.
20901         (build_array_type): Build the canonical form of an array type.
20902         (build_function_type): Function types require structural equality,
20903         because they contain default arguments, attributes, etc.
20904         (build_method_type_directly): Ditto for method types.
20905         (build_offset_type): Build the canonical offset type.
20906         (build_complex_type): Build the canonical vector type.
20907         (make_vector_type): Build the canonical vector type.
20908         * tree.h (TYPE_CANONICAL): New.
20909         (TYPE_STRUCTURAL_EQUALITY_P): New.
20910         (SET_TYPE_STRUCTURAL_EQUALITY): New.
20911         (struct tree_type): Added "canonical" field.
20912         * params.h (VERIFY_CANONICAL_TYPES): New.
20913         * doc/c-tree.texi (TYPE_CANONICAL): Document.
20914         (TYPE_STRUCTURAL_EQUALITY_P): Document.
20915         (SET_TYPE_STRUCTURAL_EQUALITY): Document.
20916         * doc/invoke.texi (verify-canonical-types): Document --param
20917         parameter for verifying canonical types.
20918
20919 2007-01-02  Joseph Myers  <joseph@codesourcery.com>
20920
20921         * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
20922         powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*,
20923         powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae,
20924         powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to
20925         tm_file.
20926         * config/rs6000/e500.h: New.
20927         * config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500,
20928         TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE):
20929         Remove.
20930         * config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE,
20931         TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE,
20932         TARGET_E500_DOUBLE): Remove.
20933         * config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE,
20934         TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove.
20935         * config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define.
20936         * config/rs6000/rs6000.c (rs6000_override_options): Use
20937         CHECK_E500_OPTIONS.
20938
20939 2007-01-02  Joseph Myers  <joseph@codesourcery.com>
20940
20941         * config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE ||
20942         TARGET_E500_DOUBLE), not TARGET_E500, for %y.
20943         (rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch,
20944         rs6000_emit_cmove): Don't check TARGET_E500.
20945         * config/rs6000/rs6000.md (bunordered, bordered, sunordered,
20946         sordered): Don't check TARGET_E500.
20947
20948 2007-01-01  Eric Christopher  <echristo@apple.com>
20949
20950         * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use
20951         HARD_REGISTER_NUM_P.
20952
20953 2007-01-01  Roger Sayle  <roger@eyesopen.com>
20954
20955         * fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into
20956         "X eq/ne (C1^C2)".  Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z
20957         has no side-effects.  Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2))
20958         eq/ne Y".
20959
20960 2007-01-01  Mike Stump  <mrs@apple.com>
20961
20962         * configure.ac: Remove support for building with Apple's gcc-3.1.
20963
20964 2007-01-02  Joseph Myers  <joseph@codesourcery.com>
20965
20966         PR middle-end/30311
20967         * caller-save.c (add_stored_regs): Only handle SUBREGs if inner
20968         REG is a hard register.  Do not modify REG before calling
20969         subreg_nregs.
20970         * rtlanal.c (subreg_get_info): Don't assert size of XMODE is a
20971         multiple of the size of YMODE for certain lowpart cases.
20972
20973 2007-01-01  Andrew Pinski  <pinskia@gmail.com>
20974
20975         PR middle-end/30253
20976         * gimplify (voidify_wrapper_expr): Update for
20977         GIMPLE_MODIFY_STMT.
20978
20979 2007-01-01  Andreas Schwab  <schwab@suse.de>
20980
20981         PR target/29166
20982         * config/ia64/ia64.c (ia64_compute_frame_size): Account space for
20983         save of BR0 in extra_spill_size instead of spill_size.
20984         (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
20985         area.
20986         (ia64_expand_epilogue): Restore BR0 from its new location.
20987
20988 2007-01-01  Andrew Pinski  <pinskia@gmail.com>
20989
20990         * gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>):
20991         Use a temporary variable if the left hand side is not a gimple
20992         register.
20993
20994 2007-01-01  Andrew Pinski  <pinskia@gmail.com>
20995
20996         * gimplify.c (gimplify_return_expr): Make the temporary variable
20997         for the return expression, a gimple register variable.
20998
20999 2007-01-01  Jan Hubicka  <jh@suse.cz>
21000
21001         * emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for
21002         INSN_LIST.
21003
21004 2007-01-01  Mike Stump  <mrs@apple.com>
21005
21006         * configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for
21007         .literal16.
21008         * config/darwin.c (machopic_select_rtx_section): Use
21009         HAVE_GAS_LITERAL16.
21010         (darwin_mergeable_constant_section): Likewise.
21011         * configure: Regenerate.
21012         * config.in: Regenerate.
21013
21014 2007-01-01  Jan Hubicka  <jh@suse.cz>
21015             Andrew Pinski  <pinskia@gmail.com>
21016
21017         * cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions
21018         before starting IPA passes.