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