OSDN Git Service

* tree-data-ref.c (add_multivariate_self_dist): Parametric access
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-07-29  Sebastian Pop  <sebpop@gmail.com>
2
3         * tree-data-ref.c (add_multivariate_self_dist): Parametric access
4         functions cannot be represented as classical distance vectors.
5
6 2007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7
8         * attribs.c (hash_attr, eq_attr, init_attributes): Constify.
9         * builtins.c (validate_arg, builtin_mathfn_code,
10         validate_arglist): Likewise.
11         * calls.c (call_expr_flags): Likewise.
12         * combine.c (reg_nonzero_bits_for_combine,
13         reg_num_sign_bit_copies_for_combine, get_last_value,
14         reg_truncated_to_mode): Likewise.
15         * emit-rtl.c (subreg_lowpart_p): Likewise.
16         * expr.c (highest_pow2_factor_for_target,
17         categorize_ctor_elements_1, categorize_ctor_elements,
18         count_type_elements, contains_packed_reference,
19         highest_pow2_factor, highest_pow2_factor_for_target): Likewise.
20         * fold-const.c (may_negate_without_overflow_p, int_const_binop,
21         fold_convertible_p, operand_equal_p, tree_swap_operands_p,
22         native_encode_int, native_encode_real, native_encode_complex,
23         native_encode_vector, native_encode_expr, native_interpret_int,
24         native_interpret_real, native_interpret_complex,
25         native_interpret_vector, native_interpret_expr): Likewise.
26         * function.c (use_register_for_decl): Likewise.
27         * gimplify.c (get_name): Likewise.
28         * langhooks-def.h (lhd_return_null_const_tree): New.
29         (LANG_HOOKS_GET_CALLEE_FNDECL): Use it.
30         * langhooks.c (lhd_return_null_const_tree): New.
31         * langhooks.h (lang_get_callee_fndecl): Constify.
32         * output.h (constructor_static_from_elts_p): Likewise.
33         * rtl-factoring.c (gen_symbol_ref_rtx_for_label): Likewise.
34         * rtl.h (nonzero_bits, num_sign_bit_copies, truncated_to_mode,
35         subreg_lowpart_p, noop_move_p, struct rtl_hooks): Likewise.
36         * rtlanal.c (cached_nonzero_bits, nonzero_bits1,
37         cached_num_sign_bit_copies, num_sign_bit_copies1, noop_move_p,
38         nonzero_bits, num_sign_bit_copies, truncated_to_mode): Likewise.
39         * rtlhooks-def.h (reg_nonzero_bits_general,
40         reg_num_sign_bit_copies_general, reg_truncated_to_mode_general):
41         Likewise. 
42         * rtlhooks.c (reg_num_sign_bit_copies_general,
43         reg_nonzero_bits_general, reg_truncated_to_mode_general):
44         Likewise. 
45         * stmt.c (warn_if_unused_value, is_body_block): Likewise.
46         * stor-layout.c (mode_for_size_tree): Likewise.
47         * tree-ssa-loop-im.c (memref_eq): Likewise.
48         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): Likewise.
49         * tree.c (contains_placeholder_p, type_list_equal,
50         simple_cst_equal, get_callee_fndecl, operand_equal_for_phi_arg_p):
51         Likewise. 
52         * tree.h (tree_int_cst_sign_bit, may_negate_without_overflow_p,
53         mode_for_size_tree, categorize_ctor_elements, count_type_elements,
54         contains_placeholder_p, contains_packed_reference,
55         get_callee_fndecl, operand_equal_for_phi_arg_p,
56         warn_if_unused_value, is_body_block, native_encode_expr,
57         native_interpret_expr, fold_convertible_p, operand_equal_p,
58         int_const_binop, tree_swap_operands_p, builtin_mathfn_code,
59         validate_arglist, simple_cst_equal, type_list_equal,
60         use_register_for_decl, call_expr_flags, get_name,
61         highest_pow2_factor): Likewise.
62         (const_call_expr_arg_iterator_d,
63         init_const_call_expr_arg_iterator, next_const_call_expr_arg,
64         first_const_call_expr_arg, more_const_call_expr_args_p,
65         FOR_EACH_CONST_CALL_EXPR_ARG): New.
66         * varasm.c (constructor_static_from_elts_p): Constify.
67
68 2007-07-28  Kazu Hirata  <kazu@codesourcery.com>
69
70         * cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md,
71         config/arm/neon-schedgen.ml, config/arm/neon.ml,
72         config/arm/vec-common.md, config/ia64/div.md, cselib.c,
73         df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c,
74         regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c,
75         tree-vect-transform.c, tree.def: Fix comment typos.  Follow
76         spelling conventions.
77         * doc/invoke.texi: Follow spelling conventions.
78
79 2007-07-29  Vladimir Yanovsky  <yanov@il.ibm.com>
80             Revital Eres  <eres@il.ibm.com>
81
82         * modulo-sched.c (sms_schedule): Avoid loops which includes
83         auto-increment instructions.
84
85 2007-07-28  Richard Guenther  <rguenther@suse.de>
86
87         PR middle-end/32920
88         * fold-const.c (fold_cond_expr_with_comparison): Convert
89         operand zero of MIN/MAX_EXPR to correct type.
90
91 2007-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
92
93         * calls.c (special_function_p, setjmp_call_p, alloca_call_p,
94         flags_from_decl_or_type): Constify.
95         * gcc.c (do_spec_1): Likewise.
96         * print-tree.c (dump_addr, print_node_brief): Likewise.
97         * tree-cfg.c (stmt_starts_bb_p, is_ctrl_stmt, computed_goto_p,
98         simple_goto_p, tree_can_make_abnormal_goto, stmt_starts_bb_p,
99         tree_purge_all_dead_eh_edges): Likewise.
100         * tree-flow.h (is_ctrl_stmt, computed_goto_p, simple_goto_p,
101         tree_can_make_abnormal_goto, tree_purge_all_dead_eh_edges):
102         Likewise. 
103         * tree.c (expr_location, expr_has_location, expr_locus,
104         expr_filename, expr_lineno, get_inner_array_type,
105         fields_compatible_p): Likewise.
106         * tree.h (get_inner_array_type, fields_compatible_p,
107         expr_location, expr_has_location, expr_locus, expr_filename,
108         expr_lineno, dump_addr, print_node_brief, flags_from_decl_or_type,
109         setjmp_call_p, alloca_call_p): Likewise.
110
111 2007-07-28  Daniel Berlin  <dberlin@dberlin.org>
112
113         * timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE,
114         TV_FLOW_INSENSITIVE.
115
116         * tree-ssa-alias.c (compute_call_clobbered): Push/pop
117         TV_CALL_CLOBBER.
118         (compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE.
119         (compute_flow_insensitive_aliasing): Ditto for
120         TV_FLOW_INSENSITIVE.    
121
122 2007-07-27  Jan Hubicka  <jh@suse.cz>
123
124         * config/i386/i386.c (register_move_cost): Remove accidentally comitted
125         #if 0 block.
126
127         * attribs.c: Include hashtab.h
128         (attribute_hash): New.
129         (substring): New structure.
130         (extract_attribute_substring, substring_hash, hash_attr, eq_attr):
131         New function.
132         (init_attributes): Initialize attribute hash.
133         (decl_attributes): Use attribute hash.
134         * Makefile.in (attribs.c): Depend on hashtab.h.
135
136 2007-07-27  Steve Ellcey  <sje@cup.hp.com>
137
138         * config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test.
139
140 2007-07-27  Richard Sandiford  <richard@codesourcery.com>
141
142         * doc/invoke.texi (mdsp, mdspr2): Document the __mips_dsp,
143         __mips_dspr2 and __mips_dsp_rev macros.
144         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dsp_rev.
145
146 2007-07-27  Douglas Gregor  <doug.gregor@gmail.com>
147         
148        * c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X.
149
150 2007-07-26  Kenneth Zadeck <zadeck@naturalbridge.com>
151
152         PR middle-end/32749
153         
154         * df-problems.c (df_create_unused_note): Removed do_not_gen parm
155         and the updating of the live and do_not_gen sets.
156         (df_note_bb_compute): Added updating of live and do_not_gen sets
157         for regular defs so that the case of clobber inside conditional
158         call is processed correctly.
159         
160 2007-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
161
162         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
163         operands with compatible type.
164
165 2007-07-27  Richard Sandiford  <richard@codesourcery.com>
166
167         * expr.h (store_bit_field): Don't return a value.
168         * expmed.c (check_predicate_volatile_ok): New function.
169         (store_bit_field_1): New function, extracted from store_bit_field.
170         Take a fallback_p argument and return true if the operation succeeded.
171         Only use store_fixed_bit_field if fallback_p.  Don't recompute
172         mode_for_extraction; use op_mode instead.  Try forcing memories
173         into registers if the insv expander fails.
174         (store_bit_field): Use store_bit_field_1 with fallback_p true.
175         Don't return a value.
176         (convert_extracted_bit_field): New function, extracted from
177         store_bit_field.
178         (extract_bit_field_1): Likewise.  Take a fallback_p argument
179         and return NULL if the operation succeeded.  Only use
180         extract_fixed_bit_field if fallback_p.  Only calculate one
181         extraction mode.  Combine code for extv and extzv.  Try forcing
182         memories into registers if the ext(z)v expander fails.
183         (extract_bit_field): Use extract_bit_field_1 with fallback_p true.
184
185 2007-07-27  Richard Sandiford  <rsandifo@nildram.co.uk>
186
187         * df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags
188         into bitfields.
189         (df_ref): Likewise.  Put regno with other integer fields.
190
191 2007-07-27  Richard Sandiford  <rsandifo@nildram.co.uk>
192
193         * df.h (df_mw_hardreg): Remove "loc" field.
194         * df-scan.c (df_ref_record): Don't set it.  Remove redundant
195         local variable.
196         * df-problems.c (df_whole_mw_reg_unused_p): New function,
197         split out from df_set_unused_notes_for_mw.  Return false for
198         partial references.  Assert that mw_reg is a REG when returning true.
199         (df_set_unused_notes_for_mw): Use it.  Use mw_reg instead of *loc.
200         (df_whole_mw_reg_dead_p): New function, split out from
201         df_set_dead_notes_for_mw.  Return false for partial references.
202         Assert that mw_reg is a REG when returning true.
203         (df_set_dead_notes_for_mw): Use it.  Use mw_reg instead of *loc.
204         Remove redundant bitmap check.
205
206 2007-07-26  H.J. Lu  <hongjiu.lu@intel.com>
207
208         * config/ia64/t-ia64 ($(T)crtbegin.o): Removed.
209         ($(T)crtend.o): Likwise.
210         ($(T)crtbeginS.o): Likwise.
211         ($(T)crtendS.o): Likwise.
212         ($(T)crtfastmath.o): Likwise.
213
214 2007-07-26  Zdenek Dvorak  <dvorakz@suse.cz>
215
216         * dominance.c (dom_computed, n_bbs_in_dom_tree): Removed.
217         * function.h (dom_computed, n_bbs_in_dom_tree): New macros.
218         * basic-block.h (struct control_flow_graph): Added x_dom_computed
219         and x_n_bbs_in_dom_tree fields.
220
221 2007-07-26  Steve Ellcey  <sje@cup.hp.com>
222
223         PR tree-optimization/32087
224         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
225         Do not call scale_bbs_frequencies_int with prob of zero.
226
227 2007-07-26  Julian Brown  <julian@codesourcery.com>
228
229         * config/arm/arm-protos.h (neon_lane_bounds, neon_const_bounds)
230         (neon_element_bits): Add prototypes.
231         * config/arm/arm.c (bounds_check, neon_lane_bounds)
232         (neon_const_bounds, neon_element_bits): New functions.
233         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_lanedi)
234         (neon_vget_lanev2di, neon_vset_lane<mode>, neon_vset_lanedi)
235         (neon_vset_lanev2di, neon_vdup_lane<mode>, neon_vdup_lanedi)
236         (neon_vdup_lanev2di, neon_vcvt_n<mode>, neon_vmul_lane<mode>)
237         (neon_vmull_lane<mode>, neon_vqdmull_lane<mode>)
238         (neon_vqdmulh_lane<mode>, neon_vmla_lane<mode>)
239         (neon_vmlal_lane<mode>, neon_vqdmlal_lane<mode>)
240         (neon_vmls_lane<mode>, neon_vmlsl_lane<mode>)
241         (neon_vqdmlsl_lane<mode>, neon_vext<mode>, neon_vshr_n<mode>)
242         (neon_vshrn_n<mode>, neon_vqshrn_n<mode>, neon_vqshrun_n<mode>)
243         (neon_vshl_n<mode>, neon_vshl_n<mode>, neon_vqshl_n<mode>)
244         (neon_vqshlu_n<mode>, neon_vshll_n<mode>, neon_vsra_n<mode>)
245         (neon_vsri_n<mode>, neon_vsli_n<mode>): Add bounds checks.
246
247 2007-07-26  Nathan Froyd  <froydnj@codesourcery.com>
248
249         * config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo.
250         (HAVE_AS_GNU_ATTRIBUTE): Undefine.
251
252 2007-07-26  Mark Shinwell  <shinwell@codesourcery.com>
253             Julian Brown  <julian@codesourcery.com>
254
255         * config/arm/arm.c (arm_mac_accumulator_is_mul_result): New.
256         * config/arm/arm-protos.h (arm_mac_accumulator_is_mul_result): New.
257         * config/arm/cortex-a8.md: New.
258         * config/arm/cortex-a8-neon.md: New.
259         * config/arm/neon-schedgen.ml: New.
260         * config/arm/neon.md (vqh_mnem): New.
261         (neon_type): New.
262         (Is_float_mode): New.
263         (Scalar_mul_8_16): New.
264         (Is_d_reg): New.
265         (V_mode_nunits): New.
266         (All instruction patterns): Annotate with neon_type attribute
267         values.
268         * config/arm/arm.md: Include cortex-a8.md.
269         (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab
270         values.
271         Annotate instruction patterns accordingly.
272         (generic_sched): Do not use generic scheduling for Cortex-A8.
273         (generic_vfp): Do not use generic VFP scheduling for Cortex-A8.
274
275 2007-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
276
277         * fold-const.c (fold_read_from_constant_string): Use
278         build_int_cst_type.
279         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
280
281 2007-07-26  Nick Clifton  <nickc@redhat.com>
282
283         * tree-ssa-operands.h: Change copyright header to refer to version
284         3 of the GNU General Public License and to point readers at the
285         COPYING3 file and the FSF's license web page.
286         * tree-vrp.c, regrename.c, attribs.c, loop-unswitch.c,
287         sched-ebb.c, fwprop.c, tree-loop-linear.c, dwarf2asm.c,
288         tree-into-ssa.c, dwarf2asm.h, tree-ssa-loop-im.c, sbitmap.c,
289         targhooks.c, tree-dump.c, tree-complex.c, sbitmap.h, targhooks.h,
290         tree-dump.h, regstat.c, see.c, machmode.h, hooks.c, cgraphbuild.c,
291         hooks.h, genrecog.c, tree-ssa-threadupdate.c, gen-protos.c,
292         flags.h, rtlhooks.c, gencheck.c, tree-ssa-loop-niter.c,
293         opts-common.c, dbgcnt.def, tree-pretty-print.c, tracer.c,
294         gengtype.c, mkconfig.sh, gengtype.h, tree-ssa-loop-unswitch.c,
295         cgraph.c, c-lex.c, cgraph.h, libfuncs.h, cfgloopmanip.c,
296         rtl-error.c, optabs.c, postreload-gcse.c, tree-ssa-loop-manip.c,
297         optabs.h, genmddeps.c, defaults.h, postreload.c, value-prof.c,
298         tree-ssa-loop-ch.c, tree-tailcall.c, gengenrtl.c, value-prof.h,
299         genopinit.c, tree.c, tree.h, reload.c, tree-pass.h, ipa-cp.c,
300         reload.h, bitmap.c, bitmap.h, tree-scalar-evolution.c,
301         c-config-lang.in, tree-scalar-evolution.h, target.h, cppspec.c,
302         rtlanal.c, ddg.c, lambda-mat.c, mips-tdump.c, ddg.h,
303         tree-phinodes.c, mips-tfile.c, pointer-set.c, pointer-set.h,
304         diagnostic.c, final.c, diagnostic.h, builtins.c, genoutput.c,
305         gcc.c, lists.c, tree-ssa-alias-warnings.c, gcc.h, cfghooks.c,
306         input.h, gensupport.c, fold-const.c, cfghooks.h, insn-notes.def,
307         gensupport.h, builtin-attrs.def, sync-builtins.def, params.c,
308         cfgloopanal.c, params.h, graphds.c, omp-low.c, tree-ssa-dse.c,
309         graphds.h, gcov.c, cfg.c, genextract.c, ipa-reference.c,
310         genautomata.c, tree-ssa-uncprop.c, auto-inc-dec.c, toplev.c,
311         tree-gimple.c, ipa-reference.h, vmsdbgout.c, errors.c, toplev.h,
312         reorg.c, tree-gimple.h, tree-chrec.c, pretty-print.c, errors.h,
313         real.c, tree-chrec.h, pretty-print.h, debug.c, real.h, genemit.c,
314         omega.c, c-cppbuiltin.c, genmultilib, debug.h, omega.h,
315         tree-ssa-sccvn.c, genconfig.c, tree-ssa-sccvn.h, cgraphunit.c,
316         regs.h, df-scan.c, vec.c, hosthooks-def.h, vec.h,
317         tree-ssa-copyrename.c, scan.c, builtin-types.def, tree-ssa-ccp.c,
318         scan.h, mode-classes.def, haifa-sched.c, dominance.c, dojump.c,
319         double-int.c, gcov-io.c, dbxout.c, builtins.def, double-int.h,
320         dbxout.h, tree-ssa-loop-ivopts.c, df-core.c, mode-switching.c,
321         gengtype-lex.l, tree-nomudflap.c, modulo-sched.c, c-objc-common.c,
322         hosthooks.h, c-objc-common.h, caller-save.c, graph.c,
323         ipa-pure-const.c, graph.h, c-format.c, cse.c, fix-header.c,
324         c-format.h, web.c, tree-stdarg.c, genpeep.c, tree-stdarg.h,
325         tree-ssa-math-opts.c, xcoffout.c, tree-ssa-dom.c, tree-nrv.c,
326         xcoffout.h, tree-ssa-propagate.c, ipa-utils.c,
327         tree-ssa-propagate.h, tree-ssa-alias.c, loop-init.c, ipa-utils.h,
328         gimple-low.c, rtl.def, c-tree.h, tree-ssa-sink.c, ipa-inline.c,
329         mkmap-symver.awk, machmode.def, c-pch.c, cfganal.c, global.c,
330         alloc-pool.c, c-semantics.c, alloc-pool.h, jump.c, ifcvt.c,
331         dwarf2out.c, expr.c, cfgbuild.c, tree-browser.c, dwarf2out.h,
332         expr.h, longlong.h, opts.c, gcov-iov.c, opts.h, dwarf2.h,
333         genattrtab.c, genconditions.c, genattr.c, optc-gen.awk,
334         timevar.def, tree-ssa-loop-ivcanon.c, hard-reg-set.h, predict.c,
335         tree-ssa-loop.c, host-default.c, predict.h, recog.c, dbgcnt.c,
336         recog.h, dbgcnt.h, c-aux-info.c, tree-ssa-address.c, timevar.c,
337         dse.c, lcm.c, tree-ssa-ifcombine.c, timevar.h, dse.h,
338         matrix-reorg.c, tree-vn.c, treestruct.def, fp-test.c, c-decl.c,
339         tree-eh.c, c-errors.c, c-pretty-print.c, regmove.c,
340         lambda-trans.c, c-pretty-print.h, et-forest.c, et-forest.h,
341         ebitmap.c, configure.ac, local-alloc.c, function.c, langhooks.c,
342         ebitmap.h, cppdefault.c, tree-vectorizer.c, function.h,
343         langhooks.h, print-rtl.c, cppdefault.h, df.h, tree-vectorizer.h,
344         sdbout.c, stor-layout.c, sdbout.h, rtlhooks-def.h, read-rtl.c,
345         gcse.c, ipa-type-escape.c, vmsdbg.h, alias.c, gengtype-parse.c,
346         ipa-type-escape.h, domwalk.c, alias.h, tree-if-conv.c, profile.c,
347         init-regs.c, domwalk.h, ipa.c, gccbug.in, tree-data-ref.c,
348         loop-unroll.c, tree-data-ref.h, tree-flow-inline.h, tree-affine.c,
349         mkmap-flat.awk, tree-affine.h, tree-vect-analyze.c, c.opt, ggc.h,
350         opt-gather.awk, c-typeck.c, gimplify.c, coretypes.h, exec-tool.in,
351         insn-addr.h, tree-ssa-phiopt.c, c-pragma.c, c-pragma.h, calls.c,
352         tree-ssa-coalesce.c, genmodes.c, loop-doloop.c, predict.def,
353         dwarf.h, tree.def, rtl-factoring.c, lower-subreg.c, expmed.c,
354         bt-load.c, ggc-common.c, genflags.c, tree-dfa.c, except.c,
355         coverage.c, except.h, emit-rtl.c, cfgexpand.c, coverage.h,
356         stringpool.c, cselib.c, emit-rtl.h, tree-cfgcleanup.c, c-opts.c,
357         cselib.h, cfgcleanup.c, simplify-rtx.c, tree-ssa-pre.c, explow.c,
358         tree-ssa-live.c, tree-sra.c, tree-ssa-live.h, tree-predcom.c,
359         loop-invariant.c, genpreds.c, protoize.c, opth-gen.awk, c-dump.c,
360         lambda.h, loop-iv.c, tree-mudflap.c, ipa-prop.c, print-tree.c,
361         tree-mudflap.h, tree-ssa-copy.c, ipa-prop.h, cfglayout.c,
362         tree-ssa-forwprop.c, c-convert.c, cfglayout.h, common.opt,
363         ggc-zone.c, ggc-page.c, c-omp.c, tree-ssa-dce.c, gencodes.c,
364         varasm.c, tree-vect-patterns.c, libada-mk.in, tree-ssa-ter.c,
365         sched-deps.c, tree-nested.c, c-ppoutput.c, tree-ssa.c,
366         target-def.h, tree-ssa-loop-prefetch.c, lambda-code.c,
367         omp-builtins.def, rtl.c, regclass.c, stab.def, intl.c, rtl.h,
368         intl.h, tree-inline.c, conditions.h, tree-inline.h, integrate.c,
369         sched-int.h, tree-iterator.c, integrate.h, tree-iterator.h,
370         genchecksum.c, tree-optimize.c, output.h, tree-vect-transform.c,
371         tree-object-size.c, combine.c, tree-outof-ssa.c, addresses.h,
372         bb-reorder.c, stack-ptr-mod.c, resource.c, var-tracking.c,
373         cfgloop.c, system.h, resource.h, ggc-none.c, tree-profile.c,
374         cfgloop.h, c-gimplify.c, c-common.c, opt-functions.awk,
375         tree-vect-generic.c, tree-flow.h, df-problems.c, scan-decls.c,
376         c-common.h, config.gcc, reg-stack.c, tlink.c, main.c, stub-objc.c,
377         fixproto, config.host, Makefile.in, gccspec.c, sched-rgn.c,
378         vecprim.h, basic-block.h, tree-ssa-structalias.c,
379         tree-ssa-structalias.h, c-common.def, sched-vis.c, tree-cfg.c,
380         passes.c, genconstants.c, c-incpath.c, c-incpath.h,
381         struct-equiv.c, c-parser.c, tree-ssa-reassoc.c, varray.c, sreal.c,
382         varray.h, dfp.c, sreal.h, combine-stack-adj.c, dfp.h,
383         reg-notes.def, cfgrtl.c, config.build, varpool.c, gengtype-yacc.y,
384         stmt.c, dce.c, tree-browser.def, prefix.c, statistics.h,
385         params.def, dce.h, c-lang.c, gcov-dump.c, prefix.h,
386         tree-ssanames.c, collect2.c, collect2.h, tree-ssa-threadedge.c,
387         convert.c, convert.h, langhooks-def.h, reload1.c,
388         tree-ssa-operands.c: Likewise.
389
390 2007-07-26  Jan Hubicka  <jh@suse.cz>
391
392         * tree-ssa-live.c: Include debug.h and flags.h.
393         (mark_scope_block_unused): New function.
394         (remove_unused_scope_block_p): New function.
395         (remove_unused_locals): Remove unused blocks too.
396
397 2007-07-25  Ian Lance Taylor  <iant@google.com>
398
399         * combine.c (combine_max_regno): Remove.  Remove all uses.
400         (struct reg_stat_struct): Rename from struct reg_stat.
401         (reg_stat_type): Define, and declare VECs.
402         (reg_stat): Change from pointer to VEC.  Change all uses.
403         (combine_split_insns): New static function.
404         (try_combine, find_split_point): Call it instead of split_insns.
405
406 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
407
408         * cfghooks.c (split_block): Fix the information about loop latch.
409
410 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
411
412         * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches.
413
414 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
415
416         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
417         Scan the new edge for loop exit info.
418
419 2007-07-25  Andreas Tobler  <a.tobler@schweiz.org>
420
421         * config/darwin.c: Include debug.h.
422
423 2007-07-25  Steve Ellcey  <sje@cup.hp.com>
424
425         PR target/32218
426         * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
427
428 2007-07-25  Steve Ellcey  <sje@cup.hp.com>
429
430         * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode.
431         (HARD_REGNO_MODE_OK): Ditto.
432         (MODES_TIEABLE_P): Ditto.
433         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
434         (CLASS_MAX_NREGS): Ditto.
435         * config/ia64/ia64.c (ia64_print_operand_address): Add R format.
436         * config/ia64/ia64.md (divsf3_internal_thr): Removed.
437         (divdf3_internal_thr): Removed.
438         * config/ia64/div.md: New file.
439         * config/ia64/constraints.md: Add H constraint.
440
441 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
442
443         * sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount,
444         sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p,
445         sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not,
446         sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg,
447         sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b,
448         sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p,
449         sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c,
450         sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c,
451         sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap,
452         dump_sbitmap_file, debug_sbitmap, popcount_table,
453         sbitmap_popcount): Constify.
454         * sbitmap.h (const_sbitmap, const_sbitmap_ptr): New.
455         (sbitmap_iterator, sbitmap_iter_init, dump_sbitmap,
456         dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal,
457         sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg,
458         sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c,
459         sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c,
460         sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b,
461         sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg,
462         sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p,
463         sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap,
464         sbitmap_popcount, sbitmap_verify_popcount): Constify.
465
466 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
467
468         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop,
469         bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits,
470         bitmap_first_set_bit, bitmap_and, bitmap_and_into,
471         bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into,
472         bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior,
473         bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p,
474         bitmap_intersect_p, bitmap_intersect_compl_p,
475         bitmap_ior_and_compl, bitmap_ior_and_compl_into,
476         debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash):
477         Constify.
478         * bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p,
479         bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and,
480         bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into,
481         bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
482         bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into,
483         debug_bitmap, debug_bitmap_file, bitmap_print,
484         bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init,
485         bmp_iter_and_init, bmp_iter_and_compl_init): Likewise.
486
487 2007-07-25  Daniel Berlin  <dberlin@dberlin.org>
488
489         * config/darwin.c (darwin_override_options): Additional fix for
490         debug info formats that don't support var tracking.
491
492 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
493
494         * cselib.c (entry_and_rtx_equal_p): Constify.
495         * gengtype.c (output_mangled_typename, write_types, write_local):
496         Likewise.
497         * gengtype.h (const_type_p): New.
498         * see.c (eq_descriptor_extension, hash_descriptor_extension):
499         Constify.
500         * tlink.c (scan_linker_output): De-constify.
501         * tree-ssa-loop-im.c (memref_eq): Constify.
502         * tree-ssa-structalias.c (const_shared_bitmap_info_t): New.
503         (shared_bitmap_hash, shared_bitmap_eq): Constify.
504
505 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
506
507         * c-common.c (fname_as_string, c_type_hash): Constify.
508         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
509         * cgraph.c (edge_hash, edge_eq): Likewise.
510         * dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise.
511         * emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash,
512         reg_attrs_htab_eq): Likewise.
513         * except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq):
514         Likewise.
515         * genautomata.c (const_reserv_sets_t, const_unit_decl_t,
516         const_decl_t, const_state_t, const_automata_list_el_t): New.
517         (first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL,
518         DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV,
519         automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash,
520         insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp,
521         reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p,
522         automata_list_hash, automata_list_eq_p, compare_states_for_equiv,
523         compare_max_occ_cycle_nums, out_state_arcs_num,
524         compare_transition_els_num, units_cmp, state_reservs_cmp):
525         Constify.
526         * genmodes.c (cmp_modes): Likewise.
527         * ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise.
528         * gimplify.c (compare_case_labels): Likewise.
529         * ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise.
530         * loop-unroll.c (si_info_hash, ve_info_hash): Likewise.
531         * matrix-reorg.c (mtt_info_hash): Likewise.
532         * postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise.
533         * rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New.
534         (htab_hash_bucket, htab_hash_elem): Constify.
535         * tree-browser.c (TB_parent_eq): Likewise.
536         * tree-scalar-evolution.c (hash_scev_info): Likewise.
537         * tree-ssa-alias.c (sort_tags_by_id): Likewise.
538         * tree-ssa-coalesce.c (const_coalesce_pair_p): New.
539         (coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs):
540         Constify.
541         * tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise.
542         * tree-ssa-pre.c (const_expr_pred_trans_t): New.
543         (expr_pred_trans_hash, expr_pred_trans_eq): Constify.
544         * tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t,
545         const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t):
546         New.
547         (vn_reference_op_eq, vn_reference_hash, vn_reference_eq,
548         vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash,
549         vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify.
550         * tree-ssa-threadupdate.c (redirection_data_hash,
551         redirection_data_eq): Likewise. 
552         * tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise.
553         * tree-ssa.c (var_ann_eq): Likewise.
554         * tree-vrp.c (compare_case_labels): Likewise.
555         * tree.c (int_cst_hash_hash, int_cst_hash_eq,
556         tree_map_base_marked_p, type_hash_marked_p, tree_check_failed,
557         tree_not_check_failed, tree_class_check_failed,
558         tree_range_check_failed, tree_not_class_check_failed,
559         omp_clause_check_failed, omp_clause_range_check_failed,
560         tree_contains_struct_check_failed, tree_operand_check_failed):
561         Likewise. 
562         * tree.h (tree_contains_struct_check_failed, tree_check_failed,
563         tree_not_check_failed, tree_class_check_failed,
564         tree_range_check_failed, tree_not_class_check_failed,
565         tree_operand_check_failed, omp_clause_operand_check_failed,
566         tree_operand_length): Likewise. 
567         * var-tracking.c (const_variable): New.
568         (variable_htab_hash, variable_htab_eq): Constify.
569         * varasm.c (const_desc_hash): Likewise.
570
571 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
572
573         * expr.c (handled_component_p): Constify.
574         * fold-const.c (fit_double_type): Likewise.
575         * real.h (real_value_from_int_cst): Likewise.
576         * tree-flow-inline.h (gimple_in_ssa_p,
577         gimple_aliases_computed_p, gimple_addressable_vars,
578         gimple_call_clobbered_vars, gimple_referenced_vars,
579         gimple_global_var, gimple_nonlocal_all, gimple_var_anns,
580         end_htab_p, end_referenced_vars_p, var_ann, function_ann,
581         may_aliases, end_readonly_imm_use_p, has_zero_uses,
582         has_single_use, single_imm_use, num_imm_uses, is_exec_stmt,
583         is_label_stmt, is_global_var, phi_ssa_name_p,
584         factoring_name_p, is_call_clobbered, tree_common_ann,
585         op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p,
586         unmodifiable_var_p, array_ref_contains_indirect_ref,
587         ref_contains_array_ref, lookup_subvars_for_var,
588         var_can_have_subvars, overlap_subvar, gimple_ssa_operands,
589         gimple_mem_ref_stats): Likewise.
590         * tree-flow.h (tree_common_ann, var_ann, function_ann,
591         may_aliases, is_exec_stmt, is_label_stmt,
592         ref_contains_array_ref, array_ref_contains_indirect_ref,
593         var_can_have_subvars, overlap_subvar, is_call_clobbered,
594         unmodifiable_var_p): Likewise.
595         * tree-gimple.c (is_gimple_min_invariant): Likewise.
596         * tree-gimple.h (is_gimple_min_invariant): Likewise. 
597         * tree.c (type_hash_list, attribute_hash_list, tree_size,
598         cst_and_fits_in_hwi, real_value_from_int_cst,
599         build_real_from_int_cst, integer_zerop, integer_onep,
600         integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2,
601         tree_floor_log2, real_zerop, real_onep, real_twop,
602         real_minus_onep, really_constant_p, purpose_member, chain_member,
603         list_length, fields_length, int_size_in_bytes, bit_position,
604         int_bit_position, byte_position, int_byte_position, expr_align,
605         array_type_nelts, tree_node_structure,
606         type_contains_placeholder_1, iterative_hash_pointer,
607         is_attribute_with_length_p, is_attribute_p, check_qualified_type,
608         tree_map_base_eq, type_hash_list, type_hash_eq,
609         attribute_hash_list, type_num_arguments, tree_int_cst_equal,
610         tree_int_cst_lt, tree_int_cst_compare, host_integerp,
611         tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
612         simple_cst_list_equal, compare_tree_int, iterative_hash_expr,
613         int_fits_type_p, get_containing_scope, decl_function_context,
614         decl_type_context, omp_clause_operand_check_failed,
615         initializer_zerop, int_cst_value, num_ending_zeros): Likewise.
616         * tree.h (omp_clause_operand_check_failed, tree_size,
617         build_real_from_int_cst, array_type_nelts, purpose_member,
618         tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare,
619         host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
620         is_attribute_p, check_qualified_type, expr_align,
621         int_size_in_bytes, bit_position, int_bit_position, byte_position,
622         int_byte_position, list_length, fields_length, initializer_zerop,
623         integer_zerop, integer_onep, integer_all_onesp, integer_pow2p,
624         integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros,
625         tree_node_structure, handled_component_p, get_containing_scope,
626         decl_function_context, decl_type_context, real_zerop,
627         type_num_arguments, fit_double_type, really_constant_p,
628         int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr,
629         compare_tree_int, chain_member, simple_cst_list_equal, real_onep,
630         real_twop, real_minus_onep, int_cst_value): Likewise.
631
632 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
633
634         * cfglayout.c (insn_scope, insn_line): Constify.
635         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq,
636         const_double_htab_hash, const_double_htab_eq,
637         mem_attrs_htab_hash): Likewise.
638         * loop-iv.c (biv_eq): Likewise.
639         * print-rtl.c (print_rtx, print_decl_name, print_mem_expr,
640         print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range,
641         debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl):
642         Likewise. 
643         * rtl-error.c (location_for_asm, diagnostic_for_asm,
644         error_for_asm, warning_for_asm, _fatal_insn,
645         _fatal_insn_not_found): Likewise. 
646         * rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat,
647         rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1,
648         rtl_check_failed_type2, rtl_check_failed_code1,
649         rtl_check_failed_code2, rtl_check_failed_code_mode,
650         rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise.
651         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
652         rtl_check_failed_type2, rtl_check_failed_code1,
653         rtl_check_failed_code2, rtl_check_failed_code_mode,
654         rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND,
655         SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs,
656         shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p,
657         get_pool_mode, insn_line, insn_file, simplify_replace_rtx,
658         mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p,
659         rtx_unstable_p, get_integer_term, get_related_value,
660         offset_within_block_p, reg_mentioned_p, count_occurrences,
661         reg_referenced_p, reg_used_between_p, no_labels_between_p,
662         single_set_2, multiple_sets, set_noop_p, refers_to_regno_p,
663         reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p,
664         find_reg_note, find_regno_note, find_reg_equal_equiv_note,
665         find_constant_src, find_reg_fusage, find_regno_fusage,
666         pure_call_p, remove_note, side_effects_p, volatile_refs_p,
667         volatile_insn_p, may_trap_p, may_trap_after_code_motion_p,
668         may_trap_or_fault_p, inequality_comparisons_p, tablejump_p,
669         computed_jump_p, auto_inc_p, in_expr_list_p,
670         remove_node_from_expr_list, loc_mentioned_in_p,
671         label_is_jump_target_p, reversed_comparison_code_parts,
672         debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find,
673         print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single,
674         print_inline_rtx): Likewise.
675         * rtlanal.c (covers_regno_p, covers_regno_no_parallel_p,
676         computed_jump_p_1, nonzero_bits1, rtx_unstable_p,
677         rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p,
678         get_integer_term, get_related_value, offset_within_block_p,
679         count_occurrences, reg_mentioned_p, no_labels_between_p,
680         reg_used_between_p, reg_referenced_p, single_set_2,
681         multiple_sets, set_noop_p, refers_to_regno_p,
682         reg_overlap_mentioned_p, dead_or_set_p,
683         covers_regno_no_parallel_p, covers_regno_p,
684         dead_or_set_regno_p, find_reg_note, find_regno_note,
685         find_reg_equal_equiv_note, find_constant_src, find_reg_fusage,
686         find_regno_fusage, pure_call_p, remove_note, in_expr_list_p,
687         remove_node_from_expr_list, volatile_insn_p, volatile_refs_p,
688         side_effects_p, may_trap_p_1, may_trap_p,
689         may_trap_after_code_motion_p, may_trap_or_fault_p,
690         inequality_comparisons_p, tablejump_p, computed_jump_p_1,
691         computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb,
692         subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise.
693         * simplify-rtx.c (neg_const_int, plus_minus_operand_p,
694         mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p):
695         Likewise. 
696         * toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm,
697         warning_for_asm): Likewise.
698         * tree.h (print_rtl): Likewise.
699         * varasm.c (get_pool_mode): Likewise.
700
701 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
702
703         * c-lex.c (c_lex_with_flags, lex_string): Constify.
704         * c-ppoutput.c (print_line, pp_dir_change): Likewise.
705         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
706         * cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
707         * cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
708         * ddg.c (compare_sccs): Likewise.
709         * df-scan.c (df_ref_compare, df_mw_compare): Likewise.
710         * dfp.c (decimal_real_from_string, decimal_to_decnumber,
711         decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
712         decimal_do_fix_trunc, decimal_real_to_integer,
713         decimal_real_to_integer2, decimal_real_maxval): Likewise.
714         * dse.c (const_group_info_t): New.
715         (invariant_group_base_eq, invariant_group_base_hash): Constify.
716         * dwarf2out.c (const_dw_die_ref): New.
717         (decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
718         * tree-browser.c (TB_parent_eq): Likewise.
719         * unwind-dw2-fde.c (__register_frame_info_bases,
720         __deregister_frame_info_bases, fde_unencoded_compare, fde_split,
721         add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
722         Likewise.
723         * unwind-dw2-fde.h (get_cie, next_fde): Likewise.
724         * unwind-dw2.c (uw_frame_state_for): Likewise.
725         * value-prof.c (histogram_hash, histogram_eq): Likewise.
726         * value-prof.h (const_histogram_value): New.
727
728 2007-07-25  Richard Sandiford  <richard@codesourcery.com>
729
730         * config/mips/mips.c (machine_function): Add
731         initialized_mips16_gp_pseudo_p.
732         (mips16_gp_pseudo_reg): Do not emit the initialization of
733         mips16_gp_pseudo_rtx when being called from the gimple cost-
734         calculation routines; emit it on the first use outside those
735         routines.
736
737 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
738
739         * coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree):
740         New.
741         
742         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
743         RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK,
744         RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3,
745         RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6,
746         RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND):
747         Preserve const-ness of parameters through use of __typeof(),
748         also constify and tidy.
749         
750         * tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2,
751         TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4,
752         NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5,
753         CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK,
754         OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK,
755         GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK,
756         PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK,
757         TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK,
758         TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise.
759
760 2007-07-25  Julian Brown  <julian@codesourcery.com>
761             Mark Shinwell  <shinwell@codesourcery.com>
762
763         * config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to...
764         (alpha_mangle_type): This.
765         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
766         (TARGET_MANGLE_TYPE): Define this instead.
767         * config/arm/arm-protos.h (arm_mangle_type): Add prototype.
768         * config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook.
769         (arm_init_neon_builtins): Fix comment.
770         (arm_mangle_map_entry): New.
771         (arm_mangle_map): New.
772         (arm_mangle_type): New.
773         * config/i386/i386.c (ix86_mangle_fundamental_type): Rename to...
774         (ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
775         mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
776         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
777         (TARGET_MANGLE_TYPE): Define this instead.
778         * config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to...
779         (ia64_mangle_type): This. Use TYPE_MAIN_VARIANT  and restrict
780         mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
781         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
782         (TARGET_MANGLE_TYPE): Define this instead.
783         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename
784         to...
785         (rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT.
786         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
787         (TARGET_MANGLE_TYPE): Define this instead.
788         * config/s390/s390.c (s390_mangle_fundamental_type): Rename to...
789         (s390_mangle_type): This.
790         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
791         (TARGET_MANGLE_TYPE): Define this instead.
792         * config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to...
793         (sparc_mangle_type): This.
794         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
795         (TARGET_MANGLE_TYPE): Define this instead.
796         * cp/mangle.c (write_type): Call mangle_type target hook on all
797         types before mangling.  Use original type, not main variant, as
798         argument.
799         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to...
800         (TARGET_MANGLE_TYPE): This.
801         * target.h (gcc_target): Rename mangle_fundamental_type to
802         mangle_type.
803         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to...
804         (TARGET_MANGLE_TYPE): This. Note slightly different semantics.
805
806 2007-07-25  Julian Brown  <julian@codesourcery.com>
807             Paul Brook  <paul@codesourcery.com>
808             Joseph Myers  <joseph@codesourcery.com>
809             Mark Shinwell  <shinwell@codesourcery.com>
810
811         * Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi.
812         * config.gcc (arm*-*-*): Add arm_neon.h to extra headers.
813         (with_fpu): Allow --with-fpu=neon.
814         * config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
815         * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
816         * config/arm/arm-modes.def (EI, OI, CI, XI): New modes.
817         * config/arm/arm-protos.h (neon_immediate_valid_for_move)
818         (neon_immediate_valid_for_logic, neon_output_logic_immediate)
819         (neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret)
820         (neon_emit_pair_result_insn, neon_disambiguate_copy)
821         (neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad)
822         (output_move_neon): Add prototypes.
823         * config/arm/arm.c (FL_NEON): New flag for NEON processor capability.
824         (all_fpus): Add FPUTYPE_NEON.
825         (fp_model_for_fpu): Add NEON field.
826         (arm_return_in_memory): Return vectors <= 16 bytes in ARM registers.
827         (arm_arg_partial_bytes): Allow NEON vectors to be passed partially
828         in registers.
829         (arm_legitimate_address_p): Don't support fancy addressing for NEON
830         structure moves.
831         (thumb2_legitimate_address_p): Likewise.
832         (neon_valid_immediate): Recognize and prepare constants suitable for
833         NEON instructions.
834         (neon_immediate_valid_for_move): New function. Recognize and prepare
835         immediates for NEON move instructions.
836         (neon_immediate_valid_for_logic): New function. Recognize and
837         prepare immediates for NEON logic instructions.
838         (neon_output_logic_immediate): New function. Create asm string
839         suitable for outputting immediate logic instructions.
840         (neon_pairwise_reduce): New function. Implement reduction using
841         pairwise operations.
842         (neon_expand_vector_init): New function. Expand a (possibly
843         non-constant) vector initialization.
844         (neon_vector_mem_operand): New function. Memory operands supported
845         for quad-word loads/stores to/from ARM or NEON registers. Don't
846         allow base+offset addressing for core regs.
847         (neon_struct_mem_operand): New function. Valid mems for NEON
848         structure moves.
849         (coproc_secondary_reload_class): Enable NEON registers to be loaded
850         from neon_vector_mem_operand addresses without a secondary register.
851         (add_minipool_forward_ref): Handle >8-byte minipool entries.
852         (add_minipool_backward_ref): Likewise.
853         (dump_minipool): Likewise.
854         (push_minipool_fix): Likewise.
855         (output_move_quad): New function. Output quad-word moves, loads and
856         stores using ARM registers.
857         (output_move_vfp): Add support for vectors in VFP (NEON) D
858         registers.
859         (output_move_neon): Output a NEON load/store to/from a quadword
860         register.
861         (arm_print_operand): Implement new codes:
862         - 'c' for unadorned integers (without a # sign).
863         - 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian
864         mode.
865         - 'e', 'f' for the low and high D parts of a NEON Q register.
866         - 'q' outputs a NEON Q register.
867         - 'h' outputs ranges of D registers for VLDM/VSTM etc.
868         - 'T' prints NEON opcode features from a coded bitmask.
869         - 'F' is similar to T, but signed/unsigned codes both print as
870         'i'.
871         - 't' is similar to T, but 'u' is printed instead of 'p'.
872         - 'O' prints 'r' if NEON instruction should perform rounding (as
873         specified by bitmask), else prints nothing.
874         - '#' is a punctuation character to stop operand numbers from
875         running together with following digits in the assembler
876         strings for instructions (when using mode attributes).
877         (arm_assemble_integer): Handle extra NEON vector modes. Permute
878         constant vectors in big-endian mode, where necessary.
879         (arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers.
880         Handle EI, OI, CI, XI modes.
881         (ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3)
882         (ashrv2si3): Rename IWMMXT2_BUILTINs to...
883         (ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt)
884         (lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names.
885         (neon_builtin_type_bits): Add enumeration, one bit for each vector
886         type.
887         (v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP)
888         (v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros
889         to turn v8qi, etc. into bits defined above.
890         (neon_itype): New enumeration. Classifications of NEON builtins.
891         (neon_builtin_datum): Define struct. Contains information about
892         a single builtin (with multiple modes).
893         (CF): Define helper macro for...
894         (VAR1...VAR10): Define builtins with a type, name and 1-10 different
895         modes.
896         (neon_builtin_data): New array. Define information about builtins
897         for use during initialization/expansion.
898         (arm_init_neon_builtins): New function.
899         (arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is
900         true.
901         (neon_builtin_compare): New function.
902         (locate_neon_builtin_icode): New function. Find an insn code for a
903         builtin given a function code for that builtin. Also return type of
904         builtin (NEON_BINOP, NEON_UNOP etc.).
905         (builtin_arg): New enumeration. Types of arguments for builtins.
906         (arm_expand_neon_args): New function. Expand a generic NEON builtin.
907         Takes a variable argument list of builtin_arg types, terminated by
908         NEON_ARG_STOP.
909         (arm_expand_neon_builtin): New function. Expand a NEON builtin.
910         (neon_reinterpret): New function. Expand NEON reinterpret intrinsic.
911         (neon_emit_pair_result_insn): New function. Support returning pairs
912         of vectors via a pointer.
913         (neon_disambiguate_copy): New function. Set up operands for a
914         multi-word copy such that registers do not get clobbered.
915         (arm_expand_builtin): Call arm_expand_neon_builtin if fcode >=
916         ARM_BUILTIN_NEON_BASE.
917         (arm_file_start): Set float-abi attribute for NEON.
918         (arm_vector_mode_supported_p): Enable NEON vector modes.
919         (arm_mangle_map_entry): New.
920         (arm_mangle_map): New.
921         (arm_mangle_vector_type): New.
922         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__
923         when appropriate.
924         (TARGET_NEON): New macro. Target supports NEON.
925         (fputype): Add FPUTYPE_NEON.
926         (UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used
927         for vectorization based on command-line arg.
928         (NEON_REGNO_OK_FOR_NREGS): Define.
929         (VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE)
930         (VALID_NEON_STRUCT_MODE): Define.
931         (PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation.
932         (arm_builtins): Add ARM_BUILTIN_NEON_BASE.
933         * config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec.
934         (consttable_16): Add pattern for outputting 16-byte minipool
935         entries.
936         (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in
937         vec-common.md).
938         (vec-common.md, neon.md): Include md files.
939         * config/arm/arm.opt (mvectorize-with-neon-quad): Add option.
940         * config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define.
941         (memory_constraint "Ut", "Un", "Us"): Define.
942         * config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros.
943         (MMX_char): New mode attribute.
944         (addv8qi3, addv4hi3, addv2si3): Remove. Replace with...
945         (*add<mode>3_iwmmxt): New insn pattern.
946         (subv8qi3, subv4hi3, subv2si3): Remove. Replace with...
947         (*sub<mode>3_iwmmxt): New insn pattern.
948         (mulv4hi3): Rename to...
949         (*mulv4hi3_iwmmxt): This.
950         (smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3)
951         (umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3)
952         (uminv4hi3, uminv2si3): Remove. Replace with...
953         (*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt)
954         (*umin<mode>3_iwmmxt): These.
955         (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with...
956         (ashr<mode>3_iwmmxt): This new pattern.
957         (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with...
958         (lshr<mode>3_iwmmxt): This new pattern.
959         (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with...
960         (ashl<mode>3_iwmmxt): This new pattern.
961         * config/arm/neon-docgen.ml: New file. Generate documentation for
962         intrinsics.
963         * config/arm/neon-gen.ml: New file. Generate arm_neon.h header.
964         * config/arm/arm_neon.h: New (autogenerated).
965         * config/arm/neon-testgen.ml: New file. Generate NEON tests
966         automatically.
967         * config/arm/neon.md: New file. Define NEON instructions.
968         * config/arm/neon.ml: New file. Abstract description of NEON
969         instructions, used to generate arm_neon.h header, documentation and
970         tests.
971         * config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md.
972         * vec-common.md: New file. Shared parts for iWMMXt and NEON vector
973         support.
974         * doc/extend.texi (ARM Built-in Functions): Rename and remove
975         extraneous comma.
976         (ARM NEON Intrinsics): New subsection.
977         * doc/arm-neon-intrinsics.texi: New (autogenerated).
978
979 2007-07-25  Danny Smith   <dannysmith@users.sourceforge.net>
980
981         * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove
982         prototype.
983
984 2007-07-24  Jan Hubicka  <jh@suse.cz>
985
986         * regclass.c (move_table): New type.
987         (move_cost, may_move_in_cost, may_move_out_cost): Use it.
988         (init_move_cost): Break out from ...
989         (init_reg_sets_1): ... here; simplify computation of
990         have_regs-of_mode and contains_reg_of_mode.
991         (record_reg_classes): Unswitch internal loops.
992         (copy_cost): Trigger lazy initialization of move cost
993         (record_address_regs): Likewise.
994
995 2007-07-24  Daniel Berlin  <dberlin@dberlin.org>
996
997         * config/darwin.c (darwin_override_options): Don't force on
998         flag_var_tracking_uninit when no debug info is requested.
999
1000 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
1001
1002         * cfgloop.c (init_loops_structure): New function.
1003         (flow_loops_find): Create root of the loop tree unconditionally.
1004
1005 2007-07-24  Daniel Jacobowitz  <dan@codesourcery.com>
1006
1007         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.
1008
1009 2007-07-24  Jan Hubicka  <jh@suse.cz>
1010
1011         * caller-save.c: Include ggc.h, gt-caller-save.h
1012         (reg_save_code, reg_restore_code): Rename to ...
1013         (cached_reg_save_code, cached_reg_restore_code): ... those.
1014         (savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New.
1015         (reg_save_code, reg_restore_code): New functions.
1016         (init_caller_save): Do not intialize
1017         reg_save_code/reg_restore_code tables.
1018         * Makefile.in: (gt-caller-save.h): New.
1019
1020 2007-07-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1021
1022         * tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand
1023         with the mode of the original operand instead of
1024         integer_one_node.
1025
1026 2007-07-23  Jan Hubicka  <jH@suse.cz>
1027
1028         * i386.c (ix86_secondary_memory_needed): Break out to...
1029         (inline_secondary_memory_needed): ... here.
1030         (ix86_memory_move_cost): Break out to ...
1031         (inline_memory_move_cost): ... here; add support for IN value of 2 for
1032         maximum of input and output; fix handling of Q_REGS on 64bit.
1033         (ix86_secondary_memory_needed): Microoptimize.
1034
1035 2007-07-23  Sebastian Pop  <sebpop@gmail.com>
1036
1037         * tree-data-ref.c (find_vertex_for_stmt, create_rdg_edge_for_ddr,
1038         create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
1039         stmts_from_loop, known_dependences_p, build_rdg): New.
1040         * tree-data-ref.h: Depends on graphds.h.
1041         (rdg_vertex, RDGV_STMT, rdg_dep_type, rdg_edge, RDGE_TYPE): New.
1042         (build_rdg): Declared.
1043         * Makefile.in (TREE_DATA_REF_H): Depends on graphds.h.
1044
1045 2007-07-23  Daniel Berlin  <dberlin@dberlin.org>
1046
1047         * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
1048         ccp_min_invariant.
1049
1050 2007-07-23  Peter Bergner  <bergner@vnet.ibm.com>
1051             Jakub Jelinek  <jakub@redhat.com>
1052
1053         PR middle-end/PR28690
1054         * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow EQ compares.
1055         * rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER
1056         and MEM_POINTER operands over REG and MEM operands.
1057         (swap_commutative_operands_p): Change return value to bool.
1058         * rtl.h: Update the corresponding prototype.
1059         * tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary
1060         instead of gen_rtx_PLUS.
1061         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return
1062         value to bool.  Change function arguments to rtx's and update code
1063         to match.
1064         (simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp
1065         calls to match the new declaration.
1066         * simplify-rtx.c (simplify_associative_operation): Don't
1067         reorder simplify_binary_operation arguments.
1068
1069 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
1070
1071         * config/mips/mips.c (override_options): Use mips_costs to derive
1072         the default branch cost.
1073         * config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather
1074         than mips_costs.
1075         * config/mips/mips.opt (mbranch-cost=): New option.
1076         * doc/invoke.texi (-mbranch-cost): Document new MIPS option.
1077
1078 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
1079
1080         * config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete.
1081         (SECONDARY_MEMORY_NEEDED): Delete commented-out definition.
1082         * config/mips/mips.c (mips_register_move_cost): Use reg_class_subset_p
1083         instead of GR_REG_CLASS_P and COP_REG_CLASS_P.
1084
1085 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
1086
1087         * config/mips/constraints.md (ks): New constraint.
1088         * config/mips/mips.md (*add<mode>3_sp1, *add<mode>3_sp2): Fold into...
1089         (*add<mode>3_mips16): ...here.
1090
1091 2007-07-21  Uros Bizjak  <ubizjak@gmail.com>
1092
1093         * optabs.h (enum optab_index): Add new OTI_signbit.
1094         (signbit_optab): Define corresponding macro.
1095         (enum insn_code signbit_optab[]): Remove array.
1096         * optabs.c (init_optabs): Initialize signbit_optab using init_optab.
1097         (expand_copysign_absneg): If back end provides signbit insn, use it
1098         instead of bit operations on floating point argument.
1099         * builtins.c (enum insn_code signbit_optab[]): Remove array.
1100         (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code for
1101         availability of signbit insn.
1102
1103         * config/i386/i386.md (signbit<mode>2): New insn pattern to implement
1104         signbitf, signbit and signbitl built-ins as inline x87 intrinsics when
1105         SSE mode is not active.
1106         (isinf<mode>2): Disable for mfpmath=sse,387.
1107
1108 2007-07-22  Ben Elliston  <bje@au.ibm.com>
1109
1110         * regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to
1111         `class' parameter.
1112         * struct-equiv.c (note_local_live): Likewise for `y_regno'.
1113
1114 2007-07-20  Richard Guenther  <rguenther@suse.de>
1115
1116         * tree-cfg.c (verify_expr): COND_EXPRs can have any
1117         integral typed condition.
1118         * tree-ssa.c (useless_type_conversion_p): Do not preserve
1119         booleanness.  Only preserve conversions from a non-base
1120         type to a base type, not in general between types with
1121         different TYPE_MIN_VALUE or TYPE_MAX_VALUE.
1122         * tree.def (COND_EXPR): Document that the condition
1123         can be of any integral type.
1124
1125 2007-07-20  Nigel Stephens  <nigel@mips.com>
1126             Richard Sandiford  <richard@codesourcery.com>
1127
1128         * config/mips/mips.h (mips_dwarf_regno): Declare.
1129         (DBX_REGISTER_NUMBER): Remove redundant brackets.
1130         (HI_REGNUM, LO_REGNUM): Define in an endian-dependent way.
1131         (AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM)
1132         (AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete.
1133         (reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
1134         (REG_CLASS_NAMES): Update accordingly.
1135         * config/mips/mips.c (mips_dwarf_regno): New array.
1136         (mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
1137         (mips_subword): Remove special handling for accumulator registers.
1138         (override_options): Initiailize mips_dwarf_regno.  Remove use
1139         of ACC_HI_REG_P.
1140         (mips_swap_registers): New function.
1141         (mips_conditional_register_usage): Swap accumulator registers
1142         around if TARGET_LITTLE_ENDIAN.
1143         (mips_cannot_change_mode_class): Remove special treatment of ACC_REGS.
1144         * config/mips/constraints.md (h, l): Use the endianness to choose
1145         between MD0_REG and MD1_REG.
1146         * config/mips/mips.md (*mfhilo_<mode>_macc): Use a fixed-string,
1147         alternative-dependent template.
1148
1149 2007-07-20  Richard Sandiford  <richard@codesourcery.com>
1150
1151         * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of
1152         no_new_pseudos.
1153
1154 2007-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
1155
1156         * function.c (thread_prologue_and_epilogue_insns): Fix exit
1157         predecessor fallthru flags.
1158
1159 2007-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
1160
1161         * tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands
1162         of compare to the same type.
1163         * cfgloopmanip.c (add_loop): Update information about loop exits.
1164         (loop_version): Remove the innermost loop requirement.
1165         * tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds
1166         to sizetype for pointers.
1167
1168 2007-07-18  H.J. Lu  <hongjiu.lu@intel.com>
1169
1170         * Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd.
1171         (D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd.
1172         (D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td.
1173
1174         * config/dfp-bit.c: Empty for TFmode conversions.
1175
1176 2007-07-18  Caroline Tice  <ctice@apple.com>
1177         
1178         * var-tracking.c (find_src_status):  Check for  COND_EXEC insns
1179         and handle them correctly; check that src is not NULL before
1180         trying to use it.
1181         (find_src_set_src): Likewise.
1182         
1183 2007-07-18  Bob Wilson  <bob.wilson@acm.org>
1184         
1185         * config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New.
1186         (struct alignment_context, init_alignment_context): New.
1187         (xtensa_expand_compare_and_swap, xtensa_expand_atomic): New.
1188         * config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default.
1189         (XCHAL_HAVE_S32C1I): Likewise.
1190         (TARGET_RELEASE_SYNC, TARGET_S32C1I): New.
1191         * config/xtensa/xtensa.md (UNSPECV_MEMW): New constant.
1192         (UNSPECV_S32RI, UNSPECV_S32C1I): Likewise.
1193         (ATOMIC, HQI): New macros.
1194         (memory_barrier, *memory_barrier): New.
1195         (sync_lock_releasesi): New.
1196         (sync_compare_and_swapsi, sync_compare_and_swap<mode>): New.
1197         (sync_lock_test_and_set<mode>): New.
1198         (sync_<atomic><mode>): New.
1199         (sync_old_<atomic><mode>, sync_new_<atomic><mode>): New.
1200         * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New.
1201         (xtensa_expand_atomic): New.
1202         
1203 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1204
1205         PR target/30652
1206
1207         * builtins.c (expand_builtin_interclass_mathfn): Provide a generic
1208         transformation for builtin ISNORMAL.
1209         (expand_builtin): Handle BUILT_IN_ISNORMAL.
1210         * builtins.def (BUILT_IN_ISNORMAL): New.
1211         * doc/extend.texi: Document isnormal.
1212
1213 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1214
1215         PR target/30652
1216
1217         * builtins.c (expand_builtin_interclass_mathfn): Allow for missing
1218         optabs infrastructure.  Provide generic implementation for
1219         FINITE/ISFINITE.
1220         (expand_builtin): Handle FINITE/ISFINITE.
1221         (fold_builtin_classify): Make ISFINITE canonical instead of FINITE.
1222         (fold_builtin_1): Likewise.
1223
1224         * builtins.def (BUILT_IN_ISFINITE): New.
1225
1226         * doc/extend.texi: Document isfinite.
1227
1228 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1229
1230         PR target/30652
1231         PR middle-end/20558
1232
1233         * builtins.c (expand_builtin_interclass_mathfn): Provide a
1234         generic fallback for isinf.
1235         * c-cppbuiltin.c (builtin_define_float_constants): Move FP max
1236         calculation code ...
1237         * real.c (get_max_float): ... to here.
1238         * real.h (get_max_float): New.
1239
1240 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1241
1242         PR middle-end/32668
1243
1244         * builtin-attrs.def (ATTR_TYPEGENERIC,
1245         ATTR_CONST_NOTHROW_TYPEGENERIC): New.
1246
1247         * builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN,
1248         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1249         BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER,
1250         BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC.
1251
1252         * c-common.c (handle_type_generic_attribute): New.
1253         (c_common_attribute_table): Add "type generic".
1254
1255         * c-typeck.c (convert_arguments): Handle "type generic" functions.
1256
1257 2007-07-18  Daniel Berlin  <dberlin@dberlin.org>
1258
1259         * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
1260         * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
1261         properly.
1262
1263 2007-07-18  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1264
1265         PR target/32808
1266         * config/cris/cris.c (cris_print_index): Don't use XEXP before
1267         checking that the operand is an expression.
1268
1269 2007-07-19  Christoph von Wittich  <Christoph_vW@reactos.org>
1270             Danny Smith  <dannysmith@users.sourceforge.net>
1271
1272         PR/other 30335
1273         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put
1274         file mapping object in local namespace if Windows version later
1275         than NT4
1276
1277 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
1278
1279         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare.
1280         * config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
1281         arm_cannot_force_const_mem.
1282         (arm_cannot_force_const_mem): New function.
1283         * config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro.
1284         (LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead
1285         of arm_tls_referenced_p.
1286         * config/arm/arm.md (movsi): Split out-of-section constants when
1287         ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P.
1288         * config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
1289
1290 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
1291
1292         * config/mips/mips.md (clear_cache): Treat the size argument as Pmode.
1293
1294 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
1295
1296         * config/mips/mips.md (*extendqihi2): Convert the destination
1297         to SImode.
1298
1299 2007-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1300
1301         * config/pa/fptr.c: Update license header.
1302         * config/pa/milli64.S: Likewise.
1303
1304 2007-07-17  Nick Clifton  <nickc@redhat.com>
1305
1306         * COPYING_v3: New file.  Contains version 3 of the GNU General
1307         Public License.
1308         * COPYING.LIB_v3: New file.  Contains version 3 of the GNU
1309         Lesser General Public License.
1310         * doc/include/gpl_v3.texi: New file.  Contains version 3 of
1311         the GNU General Public License.
1312
1313 2007-07-17  Zdenek Dvorak  <dvorakz@suse.cz>
1314
1315         PR rtl-optimization/32773
1316         * cfglayout.c (force_one_exit_fallthru): New function.
1317         (cfg_layout_finalize): Use it.
1318
1319 2007-07-16  Richard Guenther  <rguenther@suse.de>
1320             Uros Bizjak  <ubizjak@gmail.com>
1321
1322         * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
1323         before forcing it to gimple operand.
1324
1325 2007-07-16  Sandra Loosemore  <sandra@codesourcery.com>
1326             David Ung  <davidu@mips.com>
1327
1328         * config/mips/mips.h (TUNE_24K): Define.
1329         (TUNE_MACC_CHAINS): Add TUNE_24K.
1330         * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to
1331         imadd.
1332         * config/mips/74k.md (r74k_int_mult): Split madd/msub to ..
1333         (r74k_int_madd): .. this new reservation.
1334         (define_bypass): Fixed bypasses for r74k_int_madd to use
1335         mips_linked_madd_p.
1336         * config/mips/24k.md (define_bypass): Define new
1337         r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p.
1338
1339 2007-07-16  Sandra Loosemore  <sandra@codesourcery.com>
1340             Nigel Stephens  <nigel@mips.com>
1341
1342         * config/mips/mips.md:  Include 20kc.md.
1343         * config/mips/20kc.md: New file.
1344         * config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs.
1345         (mips_adjust_cost): Tweak for 20Kc.
1346         (mips_issue_rate): Likewise.
1347         * config/mips/mips.h (TUNE_20KC): Define.
1348
1349 2007-07-16  David Edelsohn  <edelsohn@gnu.og>
1350
1351         * config/rs6000/rs6000.c (struct processor_cost): Add
1352         cache_line_size, l1_cache_lines, and simultaneous_prefetches
1353         fields.
1354         (*_cost): Add cache information.
1355         (rs6000_override_options): Set cache parameters.
1356
1357 2007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1358
1359         PR bootstrap/3456
1360         * config.gcc (mips-sgi-irix[56]*): Enable pthread support.
1361         * doc/install.texi (mips-sgi-irix6): pthread support works now.
1362
1363 2007-07-16  Paul Brook  <paul@codesourcery.com>
1364
1365         PR target/32753
1366         * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
1367         (cirrus_thumb2_movsi_insn): Ditto.
1368
1369 2007-07-15  Geoffrey Keating  <geoffk@apple.com>
1370
1371         * config/rs6000/darwin-fallback.c (interpret_libc): Change
1372         CR2_REGNO to R_CR2.
1373
1374 2007-07-15  Andrew Haley  <aph@redhat.com>
1375
1376         * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL
1377         before looking in the context.
1378
1379 2007-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1380
1381         PR middle-end/32398
1382         PR middle-end/32769
1383         * pa-protos.h (pa_eh_return_handler_rtx): Declare.
1384         * pa.c (pa_extra_live_on_entry, rp_saved): Declare.
1385         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
1386         (pa_output_function_prologue): Use rp_saved and current_function_is_leaf
1387         to generate .CALLINFO statement.
1388         (hppa_expand_prologue): Set rp_saved.
1389         (hppa_expand_epilogue): Use rp_saved.
1390         (pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions.
1391         * pa.h (EH_RETURN_HANDLER_RTX): Use pa_eh_return_handler_rtx.
1392
1393 2007-07-14  Dirk Mueller  <dmueller@suse.de>
1394
1395         * omega.c (coalesce): Fix memory leak on early exit.
1396         * matrix-reorg.c (check_allocation_function): Likewise.
1397         * tree-vect-transform.c (vect_get_new_vect_var): free result
1398         of concat().
1399         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
1400         pass pointer to edge vector
1401         (partition_hot_cold_basic_blocks): Fix memory leak.
1402         * collect2.c (prefix_from_string): Free temporary storage.
1403         * reload1.c (fixup_abnormal_edges): Free sbitmap.
1404
1405 2007-07-14  Kaz Kojima  <kkojima@gcc.gnu.org>
1406
1407         * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype.
1408         (DO_GLOBAL_DTORS_BODY): Likewise.
1409
1410 2007-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1411             Nigel Stephens  <nigel@mips.com>
1412
1413         * config/mips/mips.c (mips_classify_symbol): Don't return
1414         SYMBOL_SMALL_DATA for constant pool addresses if
1415         TARGET_EMBEDDED_DATA is true.
1416
1417 2007-07-14  Uros Bizjak  <ubizjak@gmail.com>
1418
1419         * config/i386/i386.c (init_mmx_sse_builtins): Define all builtins
1420         except __builtin_ia32_emms, __builtin_ia32_ldmxcsr,
1421         __builtin_ia32_stmxcsr, __builtin_ia32_maskmovq, __builtin_ia32_loadups,
1422         __builtin_ia32_storeups, __builtin_ia32_loadhps, __builtin_ia32_loadlps,
1423         __builtin_ia32_storehps, __builtin_ia32_storelps,
1424         __builtin_ia32_movntps, __builtin_ia32_movntq, __builtin_ia32_sfence,
1425         __builtin_ia32_femms, __builtin_ia32_maskmovdqu, __builtin_ia32_loadupd,
1426         __builtin_ia32_storeupd, __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
1427         __builtin_ia32_movnti, __builtin_ia32_movntpd, __builtin_ia32_movntdq,
1428         __builtin_ia32_clflush, __builtin_ia32_lfence, __builtin_ia32_mfence,
1429         __builtin_ia32_loaddqu, __builtin_ia32_storedqu, __builtin_ia32_monitor,
1430         __builtin_ia32_mwait, __builtin_ia32_lddqu, __builtin_ia32_movntdqa,
1431         __builtin_ia32_movntsd and __builtin_ia32_movntss as const builtins
1432         using def_builtin_const.
1433
1434 2007-07-14  Eric Botcazou  <ebotcazou@adacore.com>
1435
1436         PR tree-optimization/32705
1437         * tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number.
1438         (simplify_binary_expression): Use SSA_VAL consistently.
1439
1440 2007-07-13  David Edelsohn  <edelsohn@gnu.org>
1441
1442         * config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition.
1443         (SPEFSCR_REGNO): Delete definition.
1444         * config/rs6000/rs6000.c: LINK_REGISTER_REGNUM -> LR_REGNO.
1445         COUNT_REGISTER_REGNUM -> CTR_REGNO.
1446         * config/rs6000/rs6000.h: Do not define *_REGNO.
1447         LINK_REGISTER_REGNUM -> LR_REGNO.
1448         COUNT_REGISTER_REGNUM -> CTR_REGNO.
1449         * config/rs6000/predicates.md: LINK_REGISTER_REGNUM ->  LR_REGNO.
1450         COUNT_REGISTER_REGNUM -> CTR_REGNO.
1451         * config/rs6000/linux-unwind.h: Define R_LR, R_CR2, R_VR0,
1452         R_VRSAVE, R_VSCR. Use them.
1453         * config/rs6000/darwin-fallback.c: Define R_LR, R_CTR, R_CR2,
1454         R_XER, R_VR0, R_VRSAVE, R_VSCR, R_SPEFSCR.  Use them.
1455         * config/rs6000/rs6000.md: Define REGNO constants.  Use them.
1456         * config/rs6000/aix.h: Define R_LR.  Use it.
1457         
1458 2007-07-13  Caroline Tice  <ctice@apple.com>
1459         
1460         * toplev.c (process_options): Turn flag_var_tracking_uninit off when
1461         flag_var_tracking is explicitly turned off (i.e. when variable
1462         tracking is not feasible); otherwise, turn flag_var_tracking on when
1463         flag_var_tracking_uninit is on.
1464         * rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION
1465         note definitions, to allow recording of initialization status in the
1466         notes.
1467         * dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit.
1468         (add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to
1469         determine if two note locations are equal.
1470         (output_loc_list): Don't output list entries whose start & end labels
1471         are the same.
1472         (reg_loc_descriptor): Add parameter for initialization status; pass it
1473         to other loc descriptor functions.
1474         (one_reg_loc_descriptor): Add parameter for initialization status;
1475         check its value and add DW_OP_GNU_uninit to returned loc descr if
1476         appropriate.
1477         (multiple_reg_loc_descriptor): Add parameter for initialization
1478         status;
1479         pass init status argument to other loc descriptor functions; check
1480         value of intialization parameter and add DW_OP_GNU_uninit to returned
1481         loc descr if appropriate.
1482         (based_loc_descr): Add parameter for initialization status; add new
1483         variable for return value; check value of initialization parameter and
1484         add DW_OP_GNU_uninit to returned loc descr if appropriate.
1485         (concatn_mem_loc_descriptor): Add parameter for initialization status;
1486         pass init status argument to other loc descriptor functions; check
1487         value of intialization parameter and add DW_OP_GNU_uninit to returned
1488         loc descr if appropriate.
1489         (mem_loc_descriptor): Likewise.
1490         (concat_loc_descriptor): Likewise.
1491         (concatn_loc_descriptor): Likewise.
1492         (loc_descriptor): Add parameter for initialization status; pass it as
1493         argument to other loc descriptor function calls.
1494         (loc_descriptor_from_tree_1): Add appropriate initialization status
1495         to loc descriptor function calls.
1496         (add_location_or_const_value_attribute): Get initialization status
1497         from VAR_LOCATION note; add initialization status to loc descriptor
1498         function calls.
1499         * dwarf2.h (enum dwarf_location_atom): New op, DW_OP_GNU_uninit.
1500         * print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if
1501         status is uninitialized, add "[uninint]" to output.
1502         * common.opt (fvar-tracking-uninit): New option, similar to
1503         fvar-tracking, to turn on tracking of uninitialized variables; creates
1504         a new global flag, flag_var_tracking_uninit.
1505         * rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field.
1506         (enum var_init_status): New type, for var initialization status field.
1507         * var-tracking.c (struct location_chain_def): Two new fields, init,
1508         for initialization status, and set_src for the assignment value expr.
1509         (unshare_variable): New parameter for initialization status;
1510         initialize new init and set_src fields.
1511         (var_reg_set): New parameters for initialization status and value;
1512         pass them to set_variable_part.
1513         (var_mem_set): Likewise.
1514         (get_init_value): New function.
1515         (var_reg_delete_and_set): New initialization status & value
1516         parameters; add call to get_init_value if status is unknown; pass new
1517         parameters to clobber_variable_part and var_reg_set.
1518         (var_mem_delete_and_set): Likewise.
1519         (var_reg_delete): Pass null set_src value to clobber_variable_part.
1520         (var_mem_delete): Likewise.
1521         (variable_union): Pass status to unshare_variable; initialize new init
1522         and set_src fields. If flag_var_tracking_uninit is not set, force
1523         status to initialized.
1524         (add_stores): Store insn, rather than NEXT_INSN(insn), so it can be
1525         used later to get the set_src value.
1526         (find_src_status): New function.
1527         (find_src_set_src): New function.
1528         (compute_bb_dataflow): Pass init status to calls to var_reg_set,
1529         var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for
1530         MO_SET, get set_src value and pass it to var_reg_delete_and_set
1531         and var_mem_delete_and_set.
1532         (dump_variable): Print out "[uninit]" if appropriate.
1533         (set_variable_part): Add new initialization and set_src parameters;
1534         pass status to unshare_variable; set node->init and node- >set_src
1535         fields and modify slot in hash table appropriately; save the init and
1536         set_src values if appropriate and assign to the new node.
1537         (clobber_variable_part): New set_src parameter; if two nodes have
1538         same variable and same location but different set_src (assignment)
1539         values, clobber old node.
1540         (delete_variable_part): Pass init status to unshare_variable.
1541         (emit_note_insn_var_location): Add initialized var; assign var's init
1542         status to new 'initialized'; pass new init status field to calls to
1543         gen_rtx_VAR_LOCATION. If flag_var_tracking_uninit is not set, force
1544         status to initialized.
1545         (emit_notes_in_bb): Pass initialization status to calls to
1546         var_reg_set, var_mem_set, var_reg_delete_and_set and
1547         var_mem_delete_and_set; for MO_SET, get set_src value and pass it to
1548         var_reg_delete_and_set and var_mem_delete_and_set; call
1549         emit_notes_for_changes on NEXT_INSN(insn) rather than on insn, to
1550         make up for change in add_stores.
1551         (vt_add_function_parameters): Add status to calls to
1552         set_variable_part.
1553         * config/darwin.c (darwin_override_options): Turn on uninitialized
1554         tracking automatically, if var_tracking is on and the system is
1555         10.5 or higher.
1556         
1557 2007-07-13  Sa Liu  <saliu@de.ibm.com>
1558
1559         * config.gcc: Add options for arch and tune on SPU.
1560         * config/spu/predicates.md: Add constant operands 0 and 1.
1561         * config/spu/spu-builtins.def: Add builtins for double precision 
1562         floating point comparison: si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, 
1563         si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1,
1564         spu_testsv.
1565         * config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with 
1566         a CELLEDP target.
1567         * config/spu/spu-protos.h: Add new function prototypes. 
1568         * config/spu/spu.c (spu_override_options): Check options -march and
1569         -mtune.
1570         (spu_comp_icode): Add comparison code for DFmode and vector mode.
1571         (spu_emit_branch_or_set): Use the new code for DFmode and vector 
1572         mode comparison.
1573         (spu_const_from_int): New.  Create a vector constant from 4 ints.
1574         (get_vec_cmp_insn): New.  Get insn index of vector compare instruction.
1575         (spu_emit_vector_compare): New.  Emit vector compare.
1576         (spu_emit_vector_cond_expr): New.  Emit vector conditional expression.
1577         * config/spu/spu.h: Add options -march and -mtune.  Define processor
1578         types PROCESSOR_CELL and PROCESSOR_CELLEDP.  Define macro
1579         CANONICALIZE_COMPARISON.
1580         * config/spu/spu.md: Add new insns for double precision compare
1581         and double precision vector compare.  Add vcond and smax/smin patterns
1582         to enable DFmode vector conditional expression.
1583         * config/spu/spu.opt: Add options -march and -mtune.
1584         * config/spu/spu_internals.h: Add builtins for CELLEDP target:
1585         si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv.  Add builtin for
1586         both CELL and CELLEDP targets: spu_testsv.
1587         * config/spu/spu_intrinsics.h: Add flag mnemonics for test special 
1588         values.
1589
1590 2007-07-13  Richard Guenther  <rguenther@suse.de>
1591
1592         PR tree-optimization/32721
1593         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Preserve
1594         TREE_THIS_VOLATILE on the folded reference.
1595         * tree-ssa-operands.c (get_expr_operands): Set has_volatile_ops
1596         if the array reference has TREE_THIS_VOLATILE set.
1597
1598 2007-07-13  H.J. Lu  <hongjiu.lu@intel.com>
1599
1600         PR other/32188
1601         * doc/libgcc.texi: Update DFP intrinsics for DPD and BID.
1602
1603 2007-07-13  Andreas Schwab  <schwab@suse.de>
1604
1605         * gengtype-lex.l: Allow declarations to be indented.
1606
1607 2007-07-12  Geoffrey Keating  <geoffk@apple.com>
1608
1609         * ginclude/tgmath.h: New.
1610         * config.gcc: Use GCC's tgmath.h on non-glibc systems.
1611         * doc/sourcebuild.texi (Headers): Document use_gcc_tgmath.
1612         * configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath.
1613         * configure: Regenerate.
1614
1615 2007-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1616
1617         * config/sh/linux-unwind.h (sh_fallback_frame_state): Use
1618         correct index when setting register save state for xd
1619         registers.
1620
1621 2007-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1622
1623         * config/sh/sh.c (mark_use): Remove.
1624
1625 2007-07-12  Paul Brook  <paul@codesourcery.com>
1626
1627         * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch
1628         reg does not overlap return value.
1629
1630 2007-07-12  Daniel Berlin  <dberlin@dberlin.org>
1631
1632         * tree-ssa-pre.c (get_expression_vuses): Move out side-effect.
1633         (set_expression_vuses): Ditto.
1634         (init_pre): Initialize expression_vuses.
1635
1636 2007-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
1637
1638         * config/i386/sse.md (storentdf, storentsf): New.
1639
1640 2007-07-12  Geoffrey Keating  <geoffk@apple.com>
1641
1642         * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
1643         FUNCTION_DECL.
1644         * tree.c (build_decl_stat): Move code from here...
1645         (make_node_stat): ... to here.  Don't uselessly clear DECL_USER_ALIGN.
1646         (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL.  Add comment
1647         about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
1648         * tree.h (DECL_USER_ALIGN): Fix misplaced comment.
1649         * varasm.c (assemble_start_function): Use DECL_ALIGN instead of
1650         FUNCTION_BOUNDARY.
1651
1652 2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>
1653             Devang Patel  <dpatel@apple.com>
1654
1655         PR tree-optimization/25413
1656         * targhooks.c (default_builtin_vector_alignment_reachable): New.
1657         * targhooks.h (default_builtin_vector_alignment_reachable): New.
1658         * tree.h (contains_packed_reference): New.
1659         * expr.c (contains_packed_reference): New.
1660         * tree-vect-analyze.c (vector_alignment_reachable_p): New.
1661         (vect_enhance_data_refs_alignment): Call
1662         vector_alignment_reachable_p.
1663         * target.h (vector_alignment_reachable): New builtin.
1664         * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
1665         * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
1666         (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
1667
1668 2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>
1669
1670         * target.h (builtin_vectorization_cost): Add new target builtin.
1671         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
1672         * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
1673         (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
1674         * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
1675         uninitialized variables.
1676         * tree-vect-transform.c (cost_for_stmt): New function.
1677         (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
1678         using cost 1 for all scalar stmts. Be less conservative when
1679         estimating the number of prologue/epulogue iterations. Call
1680         targetm.vectorize.builtin_vectorization_cost. Return
1681         min_profitable_iters-1.
1682         (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
1683         initialization cost instead of TARG_VEC_STMT_COST. Use
1684         TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
1685         epilogue code. Fix epilogue cost computation.
1686         * config/spu/spu.c (spu_builtin_vectorization_cost): New.
1687         (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
1688         * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
1689         (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
1690         (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
1691         (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.
1692
1693 2007-07-12  Richard Guenther  <rguenther@suse.de>
1694
1695         * gimplify.c (gimplify_conversion): Make sure that the result
1696         from maybe_fold_offset_to_reference is trivially convertible
1697         to the desired type before doing the simplification.
1698         (gimplify_expr): Likewise.
1699         * fold-const.c (fold_binary): Use the correct types for
1700         building the simplified expression.
1701
1702 2007-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
1703
1704         PR rtl-optimization/32729
1705         * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
1706         that fallthru to exit.
1707
1708 2007-07-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1709
1710         * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
1711         (symDTPOFF2reg): Likewise.
1712
1713 2007-07-11  Daniel Berlin  <dberlin@dberlin.org>
1714
1715         PR tree-optimization/32663
1716         
1717         * tree.h (VALUE_HANDLE_VUSES): Remove.
1718         (struct tree_value_handle): Remove vuses.
1719
1720         * tree-vn.c (create_value_handle_for_expr): Don't set
1721         VALUE_HANDLE_VUSES. 
1722
1723         * tree-ssa-pre.c (expression_vuses): New.
1724         (alloc_expression_id): Set up expression_vuses.
1725         (get_expression_vuses): New.
1726         (set_expression_vuses): Ditto.
1727         (clear_expression_ids): Modify for expression_vuses.
1728         (phi_translate_1): Ditto.
1729         (phi_translate_set): Ditto.
1730         (value_dies_in_block_x): Ditto
1731         (valid_in_sets): Ditto.
1732         (add_to_sets): Ditto.
1733         (find_existing_value_expr): Ditto.
1734         (create_value_handle_for_expr): Ditto.
1735         (make_values_for_stmt): Ditto.
1736         (vuse_equiv): Remove.
1737
1738 2007-07-11  Alexandre Oliva  <aoliva@redhat.com>
1739
1740         * Makefile.in (mostlyclean): Remove object files.
1741
1742 2007-07-11  Kenneth Zadeck <zadeck@naturalbridge.com>
1743
1744         * toplev.c (no_new_pseudos): Deleted.
1745         * rtl.h (no_new_pseudos): Deleted.
1746         * tree-pass.h (pass_no_new_pseudos): Deleted. 
1747         * passes.c (pass_no_new_pseudos): Deleted.
1748         * final.c (rest_of_clean_state): Removed no_new_pseudos.
1749         (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
1750         * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with 
1751         reload_completed.
1752         * cfgcleanup.c (try_crossjump_to_edge): Ditto. 
1753         * rtlhooks.c (gen_lowpart_general): Ditto.
1754         * optabs.c (prepare_operand): Ditto.
1755         * mode-switching.c (rest_of_handle_mode_switching): Deleted set of
1756         no_new_pseudos.
1757         * modulo-sched.c (rest_of_handle_sms): Ditto.
1758         * see.c (rest_of_handle_see): Ditto.
1759         * ifcvt.c (if_convert): Ditto.
1760         (gate_handle_if_after_combine): Replaced no_new_pseudos with 
1761         reload_completed.
1762         * init-regs.c (gate_initialize_regs): Deleted set of
1763         no_new_pseudos.
1764         * lower-subreg.c (decompose_multiword_subregs): Ditto. 
1765         * bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
1766         * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.
1767         
1768 2007-07-11  Uros Bizjak  <ubizjak@gmail.com>
1769
1770         PR target/32661
1771         * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves.
1772         (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT.
1773         (*vec_extractv2di_1_rex64): New insn pattern.
1774
1775 2007-07-11  David Daney  <ddaney@avtrex.com>
1776
1777         * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite
1778         return address calculation.  Substitute DWARF_ALT_FRAME_RETURN_COLUMN
1779         for SIGNAL_UNWIND_RETURN_COLUMN.
1780         * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove.
1781         (DWARF_FRAME_REGNUM): Rewrite.
1782         (DWARF_ALT_FRAME_RETURN_COLUMN) Define.
1783
1784 2007-07-11  Nick Clifton  <nickc@redhat.com>
1785
1786         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous
1787         delta and use gen_int_mode in place of GET_INT instead.
1788
1789 2007-07-11  Uros Bizjak  <ubizjak@gmail.com>
1790
1791         * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
1792         and letter field.
1793
1794 2007-07-11  Douglas Gregor  <doug.gregor@gmail.com>
1795
1796         * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
1797         (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical 
1798         types or not.
1799         * params.h (VERIFY_CANONICAL_TYPES): Remove.
1800         (USE_CANONICAL_TYPES): New.
1801         * doc/invoke.texi (verify-canonical-types): Remove.
1802         (use-canonical-types): Add.
1803
1804 2007-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
1805
1806         * config/spu/spu.c (spu_optimization_options): Remove setting of
1807         parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
1808         (spu_override_options): Move it here.
1809
1810 2007-07-11  Richard Sandiford  <richard@codesourcery.com>
1811
1812         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd.
1813         * config/mips/mips.c (mips_cpu_info_table): Mention
1814         MIPS_ISA_LEVEL_SPEC in the comment.
1815
1816 2007-07-11  Eric Botcazou  <ebotcazou@adacore.com>
1817
1818         PR tree-optimization/32713
1819         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.
1820
1821 2007-07-11  Paolo Carlini  <pcarlini@suse.de>
1822
1823         PR middle-end/30482
1824         * c-opts.c (c_common_post_options): Do not change flag_complex_method
1825         conditional to flag_isoc99.
1826         (c_common_init_options): Do it here, unconditionally.
1827
1828 2007-07-11  Eric Botcazou  <ebotcazou@adacore.com>
1829
1830         PR tree-optimization/32589
1831         * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
1832         * tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
1833         * tree-ssa-propagate.c (valid_gimple_expression_p): New
1834         predicate, extracted from...
1835         (set_rhs): ...here.  Call it for the expression on entry.
1836         * tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
1837         * tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
1838         (simplify_binary_expression): Use valid_gimple_expression_p
1839         to validate the simplification.
1840         * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.
1841
1842 2007-07-11  Danny Smith  <dannysmith@users.sourceforge.net>
1843
1844         * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
1845         DWARF2_DEBUG on 32 bit target too.
1846         (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition. 
1847
1848 2007-07-11  Nick Clifton  <nickc@redhat.com>
1849
1850         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative
1851         version for 64-bit hosts.
1852
1853 2007-07-10  David Daney  <ddaney@avtrex.com>
1854
1855         * config/mips/mips.h (ISA_HAS_SYNCI): New target capability
1856         predicate.
1857         (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of  library
1858         call.
1859         * config/mips/mips.c (mips_expand_synci_loop): New function.
1860         * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant.
1861         (UNSPEC_RDHWR): Same.
1862         (UNSPEC_SYNCI): Same.
1863         (UNSPEC_SYNC): Same.
1864         (clear_cache): New expand.
1865         (sync): New insn.
1866         (synci): Same.
1867         (rdhwr): Same.
1868         (clear_hazard): Same.
1869         * config/mips/mips-protos.h (mips_expand_synci_loop): Declare
1870         function.
1871         * testsuite/gcc.target/mips/clear-cache-1.c: New test.
1872         * testsuite/gcc.target/mips/clear-cache-2.c: New test.
1873
1874 2007-07-10  Ian Lance Taylor  <iant@google.com>
1875
1876         * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
1877         no_new_pseudos.
1878
1879 2007-07-10  David Daney  <ddaney@avtrex.com>
1880
1881         * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
1882         * builtins.c (expand_builtin___clear_cache): New function.
1883         (expand_builtin): Call expand_builtin___clear_cache for
1884         BUILT_IN_CLEAR_CACHE case.
1885         * doc/extend.texi (__builtin___clear_cache): Document new builtin.
1886         * doc/md.texi (clear_cache): Document new instruction pattern.
1887         * testsuite/gcc.dg/builtins-64.c: New test.
1888
1889 2007-07-11  Hans-Peter Nilsson  <hp@axis.com>
1890
1891         * config/cris/cris.md ("movsi"): Fix typo in last change.
1892
1893 2007-07-09  Geoffrey Keating  <geoffk@apple.com>
1894
1895         PR 32617
1896         * c-common.c (c_alignof_expr): Look at DECL_ALIGN of
1897         FUNCTION_DECLs.
1898         (handle_aligned_attribute): Allow use on FUNCTION_DECLs.
1899         * varasm.c (assemble_start_function): Honor DECL_ALIGN
1900         for FUNCTION_DECLs.  Don't use align_functions_log if
1901         DECL_USER_ALIGN.
1902         * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
1903         even for FUNCTION_DECLs.
1904         * c-decl.c (merge_decls): Propagate DECL_ALIGN even for
1905         FUNCTION_DECLs.
1906         * tree.h (DECL_ALIGN): Update for new location of 'align'.
1907         (DECL_FUNCTION_CODE): Update for new location and name of
1908         'function_code'.
1909         (DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
1910         (struct tree_decl_common): Move 'align' and 'off_align' out
1911         of union, ensure they're still on a 32-bit boundary.  Remove
1912         other fields in union 'u1'.
1913         (struct tree_function_decl): Add field 'function_code' replacing
1914         'u1.f' in tree_decl_common.
1915         * tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
1916         * doc/extend.texi (Function Attributes): Add 'aligned' attribute.
1917         (Variable Attributes): Cross-reference 'aligned' attribute
1918         to Function Attributes.
1919         * flags.h (force_align_functions_log): Delete.
1920         * toplev.c (force_align_functions_log): Delete.
1921
1922 2007-07-10  Uros Bizjak  <ubizjak@gmail.com>
1923
1924         PR target/32708
1925         * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
1926         (*vec_concatv2di_rex): New insn pattern.
1927
1928 2007-07-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1929
1930         PR target/32538
1931         * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
1932
1933 2007-07-10  Ian Lance Taylor  <iant@google.com>
1934
1935         Replace no_new_pseudos in backends.
1936         * rtl.h (can_create_pseudo_p): Define.
1937         * config/darwin.c (machopic_indirect_data_reference): Use
1938         can_create_pseudo_p () instead of no_new_pseudos.
1939         (machopic_indirect_data_reference): Likewise.
1940         (machopic_legitimize_pic_address): Likewise.
1941         * config/alpha/alpha.c (alpha_legitimize_address): Likewise.
1942         (alpha_emit_set_const_1): Likewise.
1943         (alpha_emit_set_const): Likewise.
1944         (alpha_emit_conditional_move): Likewise.
1945         (alpha_split_conditional_move): Likewise.
1946         * config/alpha/alpha.md (various splitters): Likewise.
1947         (movti): Likewise.
1948         * config/arm/arm.c (legitimize_pic_address): Likewise.
1949         (arm_load_pic_register): Likewise.
1950         * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise.
1951         (movdi, movsi, movhi, movqi, movsf, movdf): Likewise.
1952         * config/bfin/bfin.c (legitimize_pic_address): Likewise.
1953         * config/cris/cris.c (cris_expand_pic_call_address): Likewise.
1954         * config/cris/cris.md (movsi): Likewise.
1955         * config/frv/frv.md (symGOT2reg_hilo): Likewise.
1956         (symGOTOFF2reg_hilo): Likewise.
1957         (symGPREL2reg, symGPREL2reg_hilo): Likewise.
1958         * config/h8300/h8300.md (insv, extzv): Likewise.
1959         * config/i386/i386.c (ix86_expand_move): Likewise.
1960         (ix86_expand_vector_move): Likewise.
1961         (ix86_prepare_fp_compare_args): Likewise.
1962         (ix86_expand_carry_flag_compare): Likewise.
1963         * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise.
1964         (tls_dynamic_gnu2_combine_32): Likewise.
1965         (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise.
1966         * config/ia64/ia64.c (ia64_expand_move): Likewise.
1967         (ia64_expand_movxf_movrf): Likewise.
1968         * config/m32c/m32c.c (m32c_prepare_move): Likewise.
1969         (m32c_split_move): Likewise.
1970         (m32c_expand_insv): Likewise.
1971         * config/m68k/m68k.md (movsi): Likewise.
1972         * config/mips/mips.c (mips_force_temporary): Likewise.
1973         (mips_split_symbol): Likewise.
1974         (mips_move_integer): Likewise.
1975         (mips_legitimize_const_move): Likewise.
1976         * config/mn10300/mn10300.md (movsi): Likewise.
1977         * config/pa/pa.c (emit_move_sequence): Likewise.
1978         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
1979         (rs6000_got_register): Likewise.
1980         (create_TOC_reference): Likewise.
1981         (rs6000_machopic_legitimize_pic_address): Likewise.
1982         * config/rs6000/rs6000.md (add<mode>3): Likewise.
1983         (various splitters): Likewise.
1984         (iorsi3, xorsi3, iordi3, xordi3): Likewise.
1985         (movsi_got): Likewise.
1986         * config/s390/s390.c (emit_symbolic_move): Likewise.
1987         * config/s390/s390.md (movhi, movqi): Likewise.
1988         (load_multiple, store_multiple): Likewise.
1989         * config/score/score.c (score_force_temporary): Likewise.
1990         * config/sh/sh.c (prepare_move_operands): Likewise.
1991         (prepare_cbranch_operands): Likewise.
1992         (emit_fpu_switch): Likewise.
1993         (fpscr_set_from_mem): Likewise.
1994         * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise.
1995         (adddi3, subsi3): Likewise.
1996         (various splitters): Likewise.
1997         (divsi_inv_fp_combine): Likewise.
1998         (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise.
1999         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise.
2000         (sne): Likewise.
2001         * config/sh/predicates.md (xor_operand): Likewise.
2002         * config/sparc/sparc.c (legitimize_tls_address): Likewise.
2003         * config/sparc/sparc.md (movsi_pic_label_ref): Likewise.
2004         (movdi_pic_label_ref): Likewise.
2005         * config/spu/spu.c (spu_split_immediate): Likewise.
2006         * config/alpha/alpha.md (various splitters): Remove test
2007         !no_new_pseudos || reload_completed.
2008         * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set
2009         no_new_pseudos.
2010         * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
2011         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
2012         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
2013         * config/score/score.c (th_output_mi_thunk): Likewise.
2014         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2015         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
2016
2017 2007-07-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2018
2019         PR rtl-optimization/32664
2020         * mode-switching.c (create_pre_exit): Skip barrier insns.
2021
2022 2007-07-10  Zdenek Dvorak  <dvorakz@suse.cz>
2023
2024         * tree-scalar-evolution.c (scev_const_prop): Add arguments to
2025         force_gimple_operand_bsi.
2026         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr,
2027         rewrite_use_compare): Ditto.
2028         * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref):
2029         Ditto.
2030         * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto.
2031         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
2032         * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto.
2033         * tree-profile.c (prepare_instrumented_value,
2034         tree_gen_interval_profiler, tree_gen_pow2_profiler,
2035         tree_gen_one_value_profiler, tree_gen_ic_profiler,
2036         tree_gen_ic_func_profiler, tree_gen_average_profiler,
2037         tree_gen_ior_profiler): Ditto.
2038         * tree-ssa-reassoc.c (negate_value): Ditto.
2039         * matrix-reorg.c (transform_access_sites, transform_allocation_sites):
2040         Use force_gimple_operand_bsi.
2041         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
2042         * tree-if-conv.c (add_to_dst_predicate_list,
2043         find_phi_replacement_condition): Ditto.
2044         * gimplify.c (force_gimple_operand_bsi): Add before and m arguments.
2045         Call mark_symbols_for_renaming for new statements.
2046         * tree-flow.h (force_gimple_operand_bsi): Declaration changed.
2047
2048 2007-07-10  Zdenek Dvorak  <dvorakz@suse.cz>
2049
2050         * cfghooks.c (remove_edge): New function.
2051         (redirect_edge_and_branch, remove_branch, merge_blocks): Updated
2052         loop exit rescans.
2053         * cfghooks.h (remove_edge): Declare.
2054         * cfg.c (remove_edge): Renamed to remove_edge_raw.
2055         * basic-block.h (remove_edge): Declaration changed to remove_edge_raw.
2056
2057 2007-07-09  Wolfgang Gellerich  <gellerich@de.ibm.com>
2058
2059         * optabs.h: Added declaration for signbit_optab.  
2060         * optabs.c: (init_optabs): Added initialization for signbit_optab.
2061         * genoptinit.c (optabs): Added entry for signbit insns.  
2062         * builtins.c (expand_builtin_signbit): Added code to use a signbit
2063         insn, if available.  
2064         * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.  
2065         * config/s390/s390.md (signbit<mode>2): New expander.  
2066
2067 2007-07-09  Richard Guenther  <rguenther@suse.de>
2068
2069         PR middle-end/32698
2070         * fold-const.c (fold_plusminus_mult_expr): Move constant
2071         arguments second to allow decomposing.
2072
2073 2007-07-09  Alexandre Oliva  <aoliva@oliva.athome.lsd.ic.unicamp.br>
2074
2075         Revert:
2076         2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
2077         PR debug/23551
2078         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
2079         Disregard DECL_FROM_INLINE.
2080
2081 2007-07-09  Uros Bizjak  <ubizjak@gmail.com>
2082
2083         PR target/27855
2084         * doc/invoke.texi: Add ftree-reassoc flag.
2085         * common.opt (ftree-reassoc): New flag.
2086         * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
2087         (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.
2088
2089 2007-07-09  Uros Bizjak  <ubizjak@gmail.com>
2090
2091         PR tree-optimization/32681
2092         * tree-if-conv.c (find_phi_replacement_condition): Use the condition
2093         saved in second_edge->aux when first_bb is a loop header.
2094
2095 2007-07-09  Jan HUbicka  <jh@suse.cz>
2096
2097         * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
2098
2099 2007-07-09  Richard Guenther  <rguenther@suse.de>
2100
2101         * c-decl.c (start_function): Do not promote return type.
2102
2103 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
2104
2105         * function.c (do_warn_unused_parameter): Do not warn if
2106         TREE_NO_WARNING is set.
2107
2108 2007-07-08  Andreas Schwab  <schwab@suse.de>
2109
2110         * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
2111
2112 2007-07-08  Sandra Loosemore  <sandra@codesourcery.com>
2113
2114         Revert this patch:
2115         2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>
2116
2117         * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
2118         apply to assembly language, too.
2119         * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
2120
2121 2007-07-07  Daniel Berlin  <dberlin@dberlin.org>
2122
2123         Revert (note the sccvn portions are *not* reverted)
2124         2007-07-06  Daniel Berlin  <dberlin@dberlin.org>
2125
2126         Fix PR tree-optimization/23488
2127
2128         * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
2129         handles.
2130         * tree-flow-inline.h (get_value_handle): Ditto.
2131         * tree-ssa-pre.c (decl_vh_map): New.
2132         (decl_node_pool): New.
2133         (can_value_number_operation): Support DECL_P.
2134         (can_PRE_operation): Ditto.
2135         (create_expression_by_pieces): Ditto.
2136         (find_existing_value_expr): Modify to differnetiate between
2137         addressing and top level.
2138         (create_value_handle_for_expr): Handle DECL's.
2139         (poolify_tree): Ditto.
2140         (make_values_for_phi): Don't insert into PHI_GEN during FRE.
2141         (make_values_for_stmt): Handle DECL's properly.
2142         (init_pre): Reorg to not init useless things during FRE.
2143         (fini_pre): Ditto.
2144         * tree-flow.h: Include pointer-set.h.
2145         (decl_vh_map): Declare.
2146         * Makefile.in (TREE_FLOW_H): Add pointer-set.h
2147
2148 2007-07-07 Eric Weddington  <eweddington@cso.atmel.com>
2149
2150         * config/avr/constraints.md (define_memory_constraint "Q"): Fix
2151         the constraint description.
2152         * doc/md.texi: Update documentation of AVR constraints.
2153
2154 2007-07-07  Kazu Hirata  <kazu@codesourcery.com>
2155
2156         * auto-inc-dec.c, config/arm/arm.c,
2157         config/m32r/constraints.md, config/mips/mips.md,
2158         config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
2159         df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
2160         tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
2161         typos.  Follow spelling conventions.
2162         * doc/invoke.texi, doc/rtl.texi: Fix typos.
2163
2164         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
2165         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
2166
2167         * tree-ssa-operands.c (realloc_vop, realloc_vdef,
2168         realloc_vuse): Remove.
2169         * tree-ssa-operands.h: Remove the prototype for realloc_vdef
2170         and realloc_vuse.
2171
2172 2007-07-06  Daniel Berlin  <dberlin@dberlin.org>
2173
2174         Fix PR tree-optimization/23488
2175
2176         * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
2177         (try_to_simplify): Ditto.
2178         (visit_use): Ditto.
2179         * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
2180         handles.
2181         * tree-flow-inline.h (get_value_handle): Ditto.
2182         * tree-ssa-pre.c (decl_vh_map): New.
2183         (decl_node_pool): New.
2184         (can_value_number_operation): Support DECL_P.
2185         (can_PRE_operation): Ditto.
2186         (create_expression_by_pieces): Ditto.
2187         (find_existing_value_expr): Modify to differnetiate between
2188         addressing and top level.
2189         (create_value_handle_for_expr): Handle DECL's.
2190         (poolify_tree): Ditto.
2191         (make_values_for_phi): Don't insert into PHI_GEN during FRE.
2192         (make_values_for_stmt): Handle DECL's properly.
2193         (init_pre): Reorg to not init useless things during FRE.
2194         (fini_pre): Ditto.
2195         * tree-flow.h: Include pointer-set.h.
2196         (decl_vh_map): Declare.
2197         * Makefile.in (TREE_FLOW_H): Add pointer-set.h
2198                 
2199 2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>
2200
2201         * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
2202         apply to assembly language, too.
2203         * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
2204
2205 2007-07-06  Ian Lance Taylor  <iant@google.com>
2206             Zack Weinberg  <zackw@panix.com>
2207
2208         PR middle-end/32441
2209         * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
2210
2211 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
2212
2213         * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
2214         (prefetch): Likewise if "pref" would be used.
2215
2216 2007-07-06  Josh Conner  <jconner@apple.com>
2217
2218         PR middle-end/32602
2219         PR middle-end/32603
2220         * calls.c (store_one_arg): Handle arguments which are partially
2221         on the stack when detecting argument overlap.
2222
2223 2007-07-06  Bernd Schmidt  <bernd.schmidt@analog.com>
2224
2225         * reload1.c (choose_reload_regs): Set reload_spill_index for regs
2226         chosen during find_reloads.
2227
2228 2007-07-06  Richard Guenther  <rguenther@suse.de>
2229
2230         * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
2231         TYPE_ARG_TYPES for verification of argument types.  Use
2232         DECL_ARG_TYPE instead of the PARM_DECL type.  Take excess
2233         parameters as variable arguments.
2234
2235 2007-07-06  Andreas Krebbel  <krebbel1@de.ibm.com>
2236
2237         * libgcc2.h (word_type): Type definition removed.
2238         (cmp_return_type, shift_count_type): Type definitions added.
2239         (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
2240         replaced with shift_count_type.
2241         (__cmpdi2, __ucmpdi2): word_type of return type replaced with
2242         cmp_return_type.
2243         * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
2244         changed from word_type to Wtype.
2245         (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
2246         replaced with shift_count_type.
2247         (__cmpdi2, __ucmpdi2): word_type of return type replaced with
2248         cmp_return_type.
2249         * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return
2250         and libgcc_shift_count attribute added.
2251         * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
2252         TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
2253         (TARGET_INITIALIZER): New target hooks added.
2254         * targhooks.c (default_libgcc_cmp_return_mode,
2255         default_libgcc_shift_count_mode): Default implementations for the new
2256         target hooks added.
2257         * targhooks.h (default_libgcc_cmp_return_mode,
2258         default_libgcc_shift_count_mode): Function prototypes added.
2259         * target.h (struct gcc_target): Fields for the new target hooks added.
2260         * optabs.c (expand_binop): Use shift_count_mode when expanding shift
2261         as library call.
2262         (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
2263         library call.
2264
2265         * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
2266         TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
2267
2268         * config/s390/s390.c (s390_libgcc_cmp_return_mode,
2269         s390_libgcc_shift_count_mode): Functions added.
2270         (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE):
2271         Target hooks defined.
2272
2273 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
2274
2275         * config/mips/mips.c (compute_frame_size): Restore the original
2276         gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
2277         fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
2278         Document why the difference is needed.
2279
2280 2007-07-06  Richard Guenther  <rguenther@suse.de>
2281
2282         * c-common.c (boolean_increment): Use correctly typed
2283         constant.
2284
2285 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
2286
2287         * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
2288         the topmost argument register is not also included in the save mask.
2289         (mips16e_collect_argument_save_p): Take a pointer to the argument
2290         register, rather than a pointer to the number of arguments.
2291         (mips16e_collect_argument_saves): Only include argument saves
2292         that aren't in the register mask.
2293
2294 2007-07-06  Uros Bizjak  <ubizjak@gmail.com>
2295
2296         PR rtl-optimization/32450
2297         * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
2298         to ensure that instructions are not moved into the prologue when
2299         profiling is on.  Remove unused prologue_end variable.
2300         (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
2301         as a scheduling barrier.
2302
2303 2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
2304
2305         PR debug/23551
2306         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
2307         Disregard DECL_FROM_INLINE.
2308
2309 2007-07-05  Adam Nemet  <anemet@caviumnetworks.com>
2310
2311         * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
2312         IORing with a constant.
2313
2314 2007-07-05  Seongbae Park  <seongbae.park@gmail.com>
2315
2316         PR rtl-optimization/32475
2317         * df-scan.c (df_def_record_1): Add a use of the stack pointer
2318         for every definition of the stack pointer.
2319
2320 2007-07-05  Richard Earnshaw  <rearnsha@arm.com>
2321
2322         * arm.c (vfp3_const_double_index): Copy signed results of
2323         REAL_VALUE_TO_INT into unsigned vars.
2324
2325 2007-07-05  Richard Guenther  <rguenther@suse.de>
2326
2327         PR middle-end/32639
2328         * alias.c (get_alias_set): Tread METHOD_TYPE the same as
2329         FUNCTION_TYPE.
2330         * tree-ssa.c (useless_type_conversion_p): Check canonical
2331         types early.
2332
2333 2007-07-05 Anatoly Sokolov <aesok@post.ru>
2334
2335         * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2, 
2336         zero_extendhisi2): Change to define_insn_and_split. 
2337         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.
2338
2339 2007-07-05  Paolo Bonzini  <bonzini@gnu.org>
2340
2341         * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
2342         pass_match_asm_constraints): New.
2343         * passes.c (init_optimization_passes): Add new pass.
2344         * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
2345         * function.h (struct function): Add has_asm_statement bit.
2346         (current_function_has_asm_statement): New.
2347         * tree-pass.h (pass_match_asm_constraints): New.
2348
2349 2007-07-05  Richard Sandiford  <rsandifo@nildram.co.uk>
2350
2351         * config/mips/mips.c (mips_file_start): Avoid declaration
2352         after code.
2353
2354 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
2355
2356         * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
2357
2358 2007-07-05  Uros Bizjak  <ubizjak@gmail.com>
2359
2360         * rtl.def (NOTE): Change print format string to print
2361         operand 5 as a note insn name.
2362
2363 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
2364             David Ung  <davidu@mips.com>
2365
2366         * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
2367         * doc/invoke.texi: (MIPS Options): Document them.
2368
2369 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
2370             David Ung  <davidu@mips.com>
2371
2372         Add support for SmartMIPS ASE.
2373
2374         * optabs.c (expand_binop_directly): New, broken out from...
2375         (expand_binop): Here.  Make it try rotating in the other
2376         direction even when the second operand isn't constant.
2377         * config/mips/mips.md (*lwxs): New.
2378         * config/mips/mips.opt (msmartmips): New.
2379         * config/mips/mips.c (mips_lwxs_address_p): New.
2380         (mips_rtx_costs): Make it recognize scaled indexed addressing.
2381         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
2382         __mips_smartmips when compiling for TARGET_SMARTMIPS.
2383         (ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
2384         (ISA_HAS_LWXS): New.
2385         (ASM_SPEC): Add -msmartmips/-mno-smartmips.
2386         * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
2387         * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
2388         * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
2389         * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
2390         * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
2391         * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.
2392
2393 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
2394
2395         * tree-vectorizer.c (new_loop_vec_info): Initialize
2396         LOOP_VINFO_COST_MODEL_MIN_ITERS.
2397         * tree-vectorizer.h (_loop_vec_info): Added new filed
2398         min_profitable_iters.
2399         (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
2400         (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
2401         * tree-vect-analyze.c (vect_analyze_operations): Set
2402         LOOP_VINFO_COST_MODEL_MIN_ITERS.
2403         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
2404         VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
2405         Fix calculation of peel_iters_prologue. Move consideration of epilogue
2406         and prologue cost to after they are computed.
2407         (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
2408         TARG_VEC_STMT_COST.
2409         (vect_model_simple_cost): Takes additional argument dt. Consider cost
2410         of creating vectors from scalars according to dt.
2411         (vect_model_store_cost): Likewise.
2412         (vectorizable_call): Use dt array instead of scalar dt. Call
2413         vect_model_simple_cost with additional argument dt.
2414         (vectorizable_assignment): Likewise.
2415         (vectorizable_operation): Likewise.
2416         (vectorizable_type_demotion): Likewise.
2417         (vectorizable_type_promotion): Likewise.
2418         (vectorizable_store): Use dt array instead of scalar dt. Call
2419         vect_model_store_cost with additional argument dt.
2420         (vect_do_peeling_for_loop_bound): Don't call
2421         vect_estimate_min_profitable_iters. Instead, lookup
2422         LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
2423         "may not be profitable".
2424
2425 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
2426
2427         PR testsuite/32014
2428         * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
2429         (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
2430         (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
2431         (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns. 
2432
2433 2007-07-05  Zdenek Dvorak  <dvorakz@suse.cz>
2434
2435         * config/i386/i386.c (ix86_address_cost): Do not consider more complex
2436         addressing modes cheaper.
2437
2438 2007-07-05  Alexandre Oliva  <aoliva@redhat.com>
2439
2440         * dwarf2out.c (dw_ranges_by_label_ref): New typedef.
2441         (dw_ranges_struct): Rename block_num to num.  Adjust.
2442         (dw_ranges_by_label_struct): New.
2443         (ranges_by_label, ranges_by_label_allocated,
2444         ranges_by_label_in_use): New variables.
2445         (add_ranges_num): Factored most of the code out of...
2446         (add_ranges): ... this one.  Rewrite in terms of the former.
2447         (add_ranges_by_labels): New.
2448         (output_ranges): Output by-label ranges.
2449         (dwarf2out_finish): Output range for multiple-section
2450         compile_unit.  Output standard DW_AT_low_pc in addition to
2451         unexpected DW_AT_entry_pc.
2452
2453 2007-07-04  Daniel Berlin  <dberlin@dberlin.org>
2454
2455         PR tree-optimization/32604
2456         PR tree-optimization/32606
2457
2458         * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
2459         (compute_antic_safe): Removed.
2460         (ANTIC_SAFE_LOADS): Ditto.
2461         (compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
2462         (execute_pre): Don't call compute_antic_safe.
2463         (vuse_equiv): New function.
2464         (make_values_for_stmt): Use it
2465         * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
2466         not always true.
2467
2468 2007-07-04 Anatoly Sokolov <aesok@post.ru>
2469
2470         PR target/31331
2471         * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
2472         rather than a decl. 
2473         (avr_attribute_table): Make "naked" attribute apply to function types
2474         rather than to decls.
2475         (avr_handle_fntype_attribute): New function.
2476
2477 2007-07-04  Joseph Myers  <joseph@codesourcery.com>
2478
2479         * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
2480         after \.
2481
2482 2007-07-04  David Ung  <davidu@mips.com>
2483             Joseph Myers  <joseph@codesourcery.com>
2484
2485         * config/mips/mips.md (type): Add logical, signext and move.
2486         (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
2487         *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16,
2488         *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend
2489         combinations", *zero_extend<SHORT:mode><GPR:mode>2,
2490         *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e,
2491         *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit,
2492         *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc,
2493         *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16,
2494         *movsf_hardfloat, *movsf_softfloat, *movsf_mips16,
2495         *movdf_hardfloat_64bit, *movdf_hardfloat_32bit,
2496         movv2sf_hardfloat_64bit): Use the new types.
2497         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16,
2498         *movdf_softfloat, *movdf_mips16): Use "multi".
2499         (extendqihi2): Replace with a define_expand.
2500         (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New.
2501         Based on extend<SHORT:mode><GPR:mode>2 patterns.
2502         * config/mips/74k.md (r74k_int_logical): New reservation and
2503         bypasses.
2504         (r74k_int_arith): Remove "slt".
2505         * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md,
2506         config/mips/5400.md, config/mips/5500.md, config/mips/5k.md,
2507         config/mips/7000.md, config/mips/9000.md, config/mips/generic.md,
2508         config/mips/sb1.md, config/mips/sr71k.md: Add new types to
2509         reservations for "arith".
2510
2511 2007-07-04  Richard Guenther  <rguenther@suse.de>
2512
2513         * tree-ssa.c (useless_type_conversion_p): Add handling for
2514         scalar float and vector types.  Only call the types_compatible_p
2515         langhook for aggregate types as last resort.  Follow the
2516         rules.
2517
2518 2007-07-04  Richard Guenther  <rguenther@suse.de>
2519
2520         * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
2521         the same as NOP_EXPR.
2522
2523 2007-07-04  Nick Clifton  <nickc@redhat.com>
2524
2525         * target.h (struct gcc_target): Add target_help field.
2526         * target-def.h (TARGET_HELP): New.
2527         (TARGET_INITIALIZER): Use TARGET_HELP.
2528         * opts.c (command_handle_option): Invoke target_help function, if
2529         defined, when the user has specified --target-help on the command
2530         line.
2531         * doc/invoke.texi: Mention that --target-help might print
2532         additional information.
2533         * doc/tm.texi: Document TARGET_HELP hook.
2534
2535         * arm.c (TARGET_HELP): Override default definition.
2536         (arm_target_help): New - display a wrapped list of cores and
2537         architectures supported.
2538
2539 2007-07-04  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2540
2541         * config/gcc/v850/v850.c (expand_prologue): Make sure
2542         GEN_INT() argument is sign extended rather than zero extended.
2543         (expand_epilogue): Likewise.
2544         (output_move_double): Delete.
2545         * config/gcc/v850/v850-protos.h (output_move_double): Delete.
2546         * config/gcc/v850/v850.md (movdi): Delete.
2547         (*movdi_internal): Delete.
2548         (movdf): Delete.
2549         (*movdf_internal): Delete.
2550
2551 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
2552
2553         * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
2554         unless compiling RTP PIC.
2555
2556 2007-07-04  Richard Guenther  <rguenther@suse.de>
2557
2558         PR tree-optimization/32482
2559         * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
2560         original ssa name if we didn't find a shift expression.
2561         Fix shift constant for bit zero test.
2562
2563 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
2564
2565         * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.
2566
2567 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
2568
2569         * config.gcc (arm-wrs-vxworks): Don't include svr4.h.
2570         * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define.
2571         * config/arm/vxworks.h (ASM_SPEC): Delete.
2572         (SUBTARGET_EXTRA_ASM_SPEC): Define.
2573
2574 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
2575
2576         * tree-data-ref.h (data_dependence_relation): New flag reversed_p.
2577         (DDR_REVERSED_P): New.
2578         * tree-data-ref.c (initialize_data_dependence_relation,
2579         build_classic_dist_vector): Set DDR_REVERSED_P.
2580
2581 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
2582
2583         PR middle-end/32457
2584         * tree-data-ref.c (analyze_siv_subscript_cst_affine,
2585         compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
2586         init_omega_for_ddr_1): Use non conservative number of iterations
2587         estimations.
2588         (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
2589         (analyze_siv_subscript): Remove FIXME and reinitialization of 
2590         last_conflicts to chrec_dont_know.
2591         * testsuite/gfortran.dg/vect/pr32457.f90: New.
2592
2593 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
2594
2595         * tree.c (maybe_canonicalize_argtypes): Improve description.
2596
2597 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
2598
2599         * tree.c (maybe_canonicalize_argtypes): New.
2600         (build_function_type): Set canonical type.
2601         (build_method_type_directly): Ditto.
2602         (reconstruct_complex_type): Rebuild the METHOD_TYPE node
2603         properly.
2604
2605 2007-07-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2606
2607         * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
2608         like PLUS_EXPR.
2609         (rewrite_use_nonlinear_expr): Likewise.
2610
2611 2007-07-03  Seongbae Park  <seongbae.park@gmail.com>
2612
2613         * rtl.def (UNSPEC, USE, CLOBBER): More comments.
2614
2615 2007-07-04  Ben Elliston  <bje@au.ibm.com>
2616
2617         * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
2618         of this file.
2619
2620         * c-objc-common.c (c_types_compatible_p): Fix indentation.
2621
2622         * doc/tm.texi (Run-time Target): Capitalise "CPU".
2623         (Exception Handling): Likewise.
2624
2625 2007-07-03  Jan Hubicka  <jh@suse.cz>
2626
2627         * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
2628
2629 2007-07-03  Eric Christopher  <echristo@apple.com>
2630
2631         * doc/cppopts.texi: Add conflicting option note to -dM.
2632         * doc/invoke.texi: Add note about possible conflicts with
2633         -E for -dCHARS and note that -dM will not produce
2634         any results if there is no machine dependent reorg.
2635         
2636 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
2637
2638         * tree.h (DECL_ALIGN): Back out previous change.
2639
2640 2007-07-03  Joseph Myers  <joseph@codesourcery.com>
2641
2642         * configure.ac: Test for .dtprelword support on MIPS.
2643         * configure, config.in: Regenerate.
2644         * config/mips/mips.c (mips_output_dwarf_dtprel): New.
2645         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
2646
2647 2007-07-03  Julian Brown  <julian@codesourcery.com>
2648
2649         * config.gcc (with_fpu): Allow --with-fpu=vfp3.
2650         * config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
2651         * config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
2652         * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
2653         capability.
2654         (all_fpus): Add FPUTYPE_VFP3.
2655         (fp_model_for_fpu): Add VFPv3 field.
2656         (arm_rtx_costs_1): Give cost to VFPv3 constants.
2657         (vfp3_const_double_index): New function. Return integer index of
2658         VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
2659         isn't suitable.
2660         (vfp3_const_double_rtx): New function. True if VFPv3 is enabled
2661         and argument represents a valid RTX for a VFPv3 constant.
2662         (vfp_output_fldmd): Split fldmd with > 16 registers in the list into
2663         two instructions.
2664         (vfp_emit_fstmd): Similar, for fstmd.
2665         (arm_print_operand): Implement new code 'G' for VFPv3 floating-point
2666         constants, represented as integer indices.
2667         (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
2668         VFP_REGNO_OK_FOR_DOUBLE macros.
2669         (arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
2670         (arm_file_start): Set float-abi attribute for VFPv3, and output
2671         correct ".fpu" assembler directive.
2672         (arm_dbx_register_numbering): Add FIXME.
2673         * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
2674         (fputype): Add FPUTYPE_VFP3.
2675         (FIXED_REGISTERS): Add 32 registers for D16-D31.
2676         (CALL_USED_REGISTERS): Likewise.
2677         (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
2678         of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
2679         (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
2680         (D7_VFP_REGNUM): New.
2681         (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
2682         (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
2683         (VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
2684         (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
2685         (REG_ALLOC_ORDER): Adjust for VFPv3.
2686         (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
2687         (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
2688         VFP_LO_REGS, VFP_HI_REGS.
2689         (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
2690         (IS_VFP_CLASS): Define macro.
2691         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
2692         IS_VFP_CLASS.
2693         (REGISTER_MOVE_COST): Likewise.
2694         * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
2695         * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
2696         (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
2697         (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
2698         (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
2699         (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
2700         (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
2701         (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
2702         (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
2703         (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
2704         (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
2705         where appropriate for single-word registers.
2706         (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
2707         As above. Fix type attributes.
2708         * config/arm/constraints.md (register_contraint "t"): Define.
2709         (register_constraint "w"): Change to D0-D15, or D0-D31 for
2710         VFPv3/NEON.
2711         (register_constraint "x"): Define.
2712         (constraint "Dv"): Define.
2713
2714 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
2715
2716         * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
2717
2718 2007-07-03  Tom Tromey  <tromey@redhat.com>
2719
2720         * c-parser.c (objc_pq_context): Removed.
2721         (objc_need_raw_identifier): Likewise.
2722         (c_parser) <objc_pq_context>: New field.
2723         <objc_need_raw_identifier>: Likewise.
2724         (OBJC_NEED_RAW_IDENTIFIER): Removed.
2725         (c_lex_one_token): Update.
2726         (c_parser_objc_protocol_definition): Update.
2727         (c_parser_objc_method_definition): Update.
2728         (c_parser_objc_methodproto): Update.
2729         (c_parser_declspecs): Update.
2730
2731 2007-07-03  David Ung  <davidu@mips.com>
2732
2733         * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
2734
2735 2007-07-03  David Ung  <davidu@mips.com>
2736             Richard Sandiford  <richard@codesourcery.com>
2737
2738         * doc/invoke.texi: Document -march=74kf3_2.
2739         * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
2740         (TUNE_74K): Check for it.
2741         * config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
2742         (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
2743         * config/mips/mips.md (cpu): Add 74kf3_2.
2744         * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
2745         (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
2746         (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
2747         (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
2748         74kf3_2 to the CPU list.
2749         (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
2750         (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
2751         (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
2752         (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
2753         (r74kf3_2_fxfer_from_c1): New insn reservations.
2754
2755 2007-07-03  Richard Sandiford  <richard@codesourcery.com>
2756             David Ung  <davidu@mips.com>
2757
2758         * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
2759         -march=24kx with -march=24kf1_1.  Likewise 24ke[fx], 34k[fx]
2760         and 74k[fx].  Document aliases for the new options.
2761         * config/mips/mips.h (PROCESSOR_24KF): Rename to...
2762         (PROCESSOR_24KF2_1): ...this.
2763         (PROCESSOR_24KX): Rename to...
2764         (PROCESSOR_24KF1_1): ...this.
2765         (PROCESSOR_74KF): Rename to...
2766         (PROCESSOR_74KF2_1): ...this.
2767         (PROCESSOR_74KX): Rename to...
2768         (PROCESSOR_74KF1_1): ...this.
2769         (TUNE_74K): Update PROCESSOR_* names.
2770         * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
2771         for 24kf.  Add 24kf1_1 and 24kfx as synonyms for 24kx.  Likewise
2772         the 24ke*, 34k* and 74k* processors.  Update PROCESSOR_* names.
2773         (mips_rtx_cost_data): Update processor names in comments.
2774         (mips_issue_rate): Update PROCESSOR_* names.
2775         * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
2776         24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
2777         * config/mips/24k.md: Rename FPU-related r24k_* insn reservations
2778         to r24kf2_1_*.  Rename r24kx_* insn reservations to r24kf1_1_*.
2779         Update cpu attribute names.
2780         (r24k_fpu_iss): Rename this reservation to...
2781         (r24kf2_1_fpu_iss): ...this and update all uses.
2782         (r24kx_fpu_iss): Rename this reservation to...
2783         (r24kf1_1_fpu_iss): ...this and update all uses.
2784         * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
2785         to r74kf2_1_*.  Rename r74kx_* insn reservations to r74kf1_1_*.
2786         Update cpu attribute names.
2787
2788 2007-07-01  Kaz Kojima  <kkojima@gcc.gnu.org>
2789
2790         * config/m32r/constraints.md: New file.
2791         * config/m32r/m32r.c: Include tm-constrs.h.
2792         (small_data_operand): Use satisfies_constraint_* instead of macro.
2793         (addr24_operand, gen_compare): Likewise.
2794         * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
2795         (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
2796         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
2797         EXTRA_CONSTRAINT): Likewise.
2798         * config/m32r/m32r.md: Include constraints.md.
2799         (*movsi_insn): Use satisfies_constraint_* instead of macro.
2800         (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
2801         * config/m32r/predicates.md (conditional_move_operand): Likewise.
2802         (two_insn_const_operand, int8_operand, uint16_operand,
2803         reg_or_int16_operand, reg_or_uint16_operand,
2804         reg_or_cmp_int16_operand, cmp_int16_operand,
2805         seth_add3_operand): Likewise.
2806
2807 2007-07-03  Eric Christopher  <echristo@gmail.com>
2808
2809         * libgcc2.h: Conditionally declare __bswapsi2 and
2810         __bswapdi2.
2811         
2812 2007-07-03  H.J. Lu  <hongjiu.lu@intel.com>
2813
2814         * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
2815         defined.
2816
2817 2007-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2818
2819         PR target/28307
2820         * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
2821         (__gthrw_pragma): Provide default definition.
2822         (__gthrw2): Use it.
2823         * gthr-posix.c (__gthrw_pragma): Define.
2824
2825 2007-07-03  Daniel Berlin  <dberlin@dberlin.org>
2826
2827         * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
2828         before declaring inequality.
2829
2830 2007-07-03  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2831
2832         * combine.c (recog_for_combine): Log the success or failure of
2833           matching new insn patterns against the machine description in
2834           detailed dumps.
2835
2836 2007-07-03  Revital Eres  <eres@il.ibm.com>
2837
2838         * ddg.c (print_sccs): New function.
2839         (check_sccs): New function.
2840         (create_ddg_all_sccs): Use it.
2841         * ddg.h (print_sccs): Declare.
2842         * modulo-sched.c (sms_order_nodes): Call print_sccs.
2843
2844 2007-07-03  Uros Bizjak  <ubizjak@gmail.com>
2845
2846         * targhooks.h (default_mode_for_suffix): New function declaration.
2847         * targhooks.c (default_mode_for_suffix): New default target hook.
2848         * target.h (struct c): New structure in the targetm struct.
2849         (mode_for_suffix): New target hook as part of struct c.
2850         target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
2851         default_mode_for_suffix.
2852         (TARGET_C): New define.
2853         * c-lex.c: Include "target.h".
2854         (interpret_float): Use targetm.c.mode_for_suffix to determine
2855         the mode for a given non-standard suffix.
2856         Makefile.in (c-lex.o): Depend on $(TARGET_H).
2857
2858         * config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
2859         (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
2860
2861         * doc/extend.texi (Floating Types): New node.  Document __float80 and
2862         __float128 types.  Document 'w', 'W', 'q' and 'Q' suffixes.
2863
2864 2007-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2865
2866         PR target/32506
2867         * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
2868         predicate instead of target_operand.
2869         (divsi3_i1_media, divsi3_media_2): Likewise.
2870
2871 2007-07-02  Eric Botcazou  <ebotcazou@adacore.com>
2872
2873         * tree.h (alias_sets_might_conflict_p): Rename into
2874         alias_sets_must_conflict_p.
2875         * alias.c (alias_sets_might_conflict_p): Likewise.
2876         (alias_sets_conflict_p): Use it.
2877         (objects_must_conflict_p): Likewise.
2878         * c-common.c (strict_aliasing_warning): Adjust.
2879
2880 2007-07-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2881
2882         * rtlhooks.c (gen_lowpart_if_possible): Check for
2883         invalid subreg before calling gen_lowpart_SUBREG.
2884
2885 2007-07-02  Geoffrey Keating  <geoffk@apple.com>
2886
2887         * config/darwin9.h: Add copyright notice.
2888         (LINK_COMMAND_SPEC): Add comment.
2889         (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
2890         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
2891         DARWIN_LIBSYSTEM_HAS_UNWIND.
2892
2893 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
2894
2895         PR libgomp/32468
2896         * omp-low.c (check_combined_parallel): New function.
2897         (lower_omp_parallel): Call it via walk_stmts, set
2898         OMP_PARALLEL_COMBINED if appropriate.
2899         (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
2900         isn't the only statement in WS_ENTRY_BB or OMP_RETURN
2901         the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
2902         don't consider it as combined parallel.
2903
2904 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
2905
2906         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
2907         (gcc_tooldir): Likewise.
2908         * configure: Regenerate.
2909         * Makefile.in (libsubdir_to_prefix): New variable, based on the
2910         old configure.ac gcc_tooldir setting.
2911         (prefix_to_exec_prefix): New variable.
2912         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
2913         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
2914
2915 2007-07-02  Daniel Berlin  <dberlin@dberlin.org>
2916
2917         Fix PR tree-optimization/32583
2918         Fix PR tree-optimization/32584
2919         * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
2920         (phi_translate_set): Use phi_translate directly now.
2921         (make_values_for_stmt): Don't value number RHS if we already know
2922         it is constant.
2923
2924 2007-07-02  Steve Ellcey  <sje@cup.hp.com>
2925             Jim Wilson <wilson@specifix.com>
2926
2927         PR target/31684
2928         * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
2929         copy_insn.
2930
2931 2007-07-02  Sandra Loosemore  <sandra@codesourcery.com>
2932             Richard Sandiford  <richard@codesourcery.com>
2933             Nigel Stephens  <nigel@mips.com>
2934
2935         * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
2936         (mips16e_output_save_restore): Declare.
2937         (mips16e_save_restore_pattern_p): Likewise.
2938         * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
2939         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
2940         for GENERATE_MIPS16E_SAVE_RESTORE.  Return 0x400 for TARGET_MIPS16
2941         && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
2942         (BITSET_P): New global macro, extracted from...
2943         (mips_for_each_saved_reg): ...here.
2944         (mips16e_save_restore_info): New struct.
2945         (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
2946         (mips16e_save_restore_regs): New variable.
2947         (mips_split_plus, mips16e_find_first_register): New functions.
2948         (mips16e_mask_registers): New function.
2949         (compute_frame_size): Expand the commentary before the function.
2950         Enforce the MIPS16e save and restore register range restrictions.
2951         Pad the general register save area at the low end.
2952         (mips16e_save_restore_reg, mips16e_build_save_restore)
2953         (mips16e_save_restore_pattern_p, mips16e_add_register_range)
2954         (mips16e_output_save_restore, mips16e_collect_propagate_value)
2955         (mips16e_collect_argument_save, mips16e_collect_argument_saves):
2956         New functions.
2957         (mips_expand_prologue, mips_expand_epilogue): Handle
2958         GENERATE_MIPS16E_SAVE_RESTORE.
2959         * config/mips/mips.md (*mips16e_save_restore): New pattern.
2960
2961 2007-07-02  Uros Bizjak  <ubizjak@gmail.com>
2962
2963         PR tree-optimization/31966
2964         PR tree-optimization/32533
2965         * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
2966         "basic_block" description as its third argument.  Update function
2967         calls to get destination bb from "edge" argument.  Save "cond" into
2968         aux field of the edge.  Update prototype for changed arguments.
2969         (if_convertible_loop_p): Clear aux field of incoming edges if bb
2970         contains phi node.
2971         (find_phi_replacement_condition): Operate on incoming edges, not
2972         on predecessor blocks.  If there is a condition saved in the
2973         incoming edge aux field, AND it with incoming bb predicate.
2974         Return source bb of the first edge.
2975         (clean_predicate_lists): Clean aux field of outgoing node edges.
2976         (tree_if_conversion): Do not initialize cond variable. Move
2977         variable declaration into the loop.
2978         (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
2979         initializations of new_stmt, arg0 and arg1 variables.
2980
2981 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
2982
2983         * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
2984         SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
2985
2986 2007-07-02  Richard Guenther  <rguenther@suse.de>
2987
2988         * tree-ssa.c (useless_type_conversion_p): Document
2989         future intent as defining the middle-end type system.
2990         Re-structure to call langhook last, group by type class,
2991         mark questionable parts.
2992
2993 2007-07-02  Richard Guenther  <rguenther@suse.de>
2994
2995         * tree-flow.h (types_compatible_p): Declare.
2996         * tree-ssa.c (types_compatible_p): New function.
2997         * ipa-type-escape.c (discover_unique_type): Use
2998         types_compatible_p instead of lang_hooks.types_compatible_p.
2999         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
3000         * tree-vn.c (expressions_equal_p): Likewise.
3001         * tree.c (fields_compatible_p): Likewise.
3002         * tree-ssa-dom.c (avail_expr_eq): Likewise.
3003         (cprop_operand): Use useless_type_conversion_p instead of
3004         lang_hooks.types_compatible_p.
3005         * tree-inline.c (setup_one_parameter): Likewise.
3006         (declare_return_variable): Likewise.
3007         * tree-nrv.c (tree_nrv): Likewise.
3008         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
3009         (maybe_fold_offset_to_component_ref): Likewise.
3010         (maybe_fold_offset_to_reference): Likewise.
3011         * tree-ssa-copy.c (may_propagate_copy): Likewise.
3012         (merge_alias_info): Likewise.
3013         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3014         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
3015         * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
3016         * tree-tailcall.c (find_tail_calls): Likewise.
3017         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
3018         * gimplify.c (canonicalize_addr_expr): Likewise.
3019         (fold_indirect_ref_rhs): Likewise.
3020         (gimplify_addr_expr): Likewise.  Swap parameters to cpt_same_type.
3021         (cpt_same_type): Likewise.
3022         (check_pointer_types_r): Swap parameters to cpt_same_type
3023         where appropriate.
3024         * fold-const.c (fold_convert): Revert fix for PR15988.
3025         * tree-inline.c (setup_one_parameter): Instead fix it here by
3026         using fold_build1 instead of fold_convert and checking for
3027         error_mark_node.  Convert only if the conversion is necessary.
3028
3029 2007-07-02  Joseph Myers  <joseph@codesourcery.com>
3030
3031         * configure.ac: Check for .gnu_attribute on Power.
3032         * configure: Regenerate.
3033         * config/rs6000/rs6000.c (rs6000_file_start): If supported, output
3034         attribute for floating-point ABI.
3035
3036 2007-07-02  Ira Rosen  <irar@il.ibm.com>
3037
3038         PR tree-optimization/32230
3039         PR tree-optimization/32477
3040         * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base 
3041         address is a constant.
3042
3043 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
3044
3045         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*)
3046         (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*)
3047         (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level
3048         stanzas.  Use the first part of the triplet to set MIPS_ISA_DEFAULT.
3049         Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the
3050         64-bit targets.  Add support for *-elfoabi*.
3051         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use
3052         different settings if $(tm_defines) does not select the EABI.
3053         (MULTILIB_EXCLUSIONS): Define in those circumstances.
3054         * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro.
3055         (MIPS_ARCH_OPTION_SPEC): Likewise.
3056         (MIPS_ISA_LEVEL_SPEC): Likewise.
3057         (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC.
3058         * config/mips/elfoabi.h: New file.
3059
3060 2007-07-02  Richard Guenther  <rguenther@suse.de>
3061
3062         * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...
3063         (useless_type_conversion_p): ... this.
3064         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ...
3065         (useless_type_conversion_p): ... this.
3066         * builtins.c (fold_builtin_memory_op): Rename
3067         tree_ssa_useless_type_conversion_1 to useless_type_conversion_p.
3068         * tree-cfg.c (verify_expr): Likewise.
3069         * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise.
3070         * tree-ssa-ccp.c (ccp_fold): Likewise.
3071         * tree-ssa-copy.c (may_propagate_copy): Likewise.
3072         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
3073         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3074         * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise.
3075         * tree-ssa-pre.c (eliminate): Likewise.
3076         * tree-ssa.c (delete_tree_ssa): Likewise.
3077         (tree_ssa_useless_type_conversion): Likewise.
3078         * tree.c (build2_stat): Likewise.
3079
3080 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
3081
3082         Fix PR tree-optimization/32571
3083         * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid
3084         simplifying them.
3085
3086 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
3087
3088         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants
3089         and other expected operations explicitly, change default to
3090         gcc_unreachable. 
3091
3092 2007-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
3093
3094         * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a
3095         PARALLEL.
3096         * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight)
3097         (tls_load_dot_plus_eight): Move the label number into the unspec.
3098         * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise.
3099
3100 2007-07-01  Andreas Schwab  <schwab@suse.de>
3101
3102         * dwarf2out.c (initial_return_save): Define only if used.
3103
3104 2007-07-01  Kenneth Zadeck <zadeck@naturalbridge.com>
3105
3106         Unreverting Richard's Revert of:
3107
3108         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
3109
3110         * dce.c (deletable_insn_p_1): New function, split out from...
3111         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
3112         specially, not those inside PARALLELs.  Remove BODY argument
3113         and adjust recursive call accordingly.
3114         (prescan_insns_for_dce): Update call to delete_insn_p.
3115
3116 2007-07-01  Vladimir Yanovsky  <yanov@il.ibm.com>
3117             Revital Eres  <eres@il.ibm.com>
3118
3119         * ddg.c (create_ddg_all_sccs): Fix missed
3120         initialization of scc_nodes.
3121
3122 2007-07-01  Uros Bizjak  <ubizjak@gmail.com>
3123
3124         PR middle-end/32559
3125         * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or
3126         X + ~X to 1 only for INTEGRAL_TYPE_P type.
3127
3128 2007-06-30  Joseph Myers  <joseph@codesourcery.com>
3129
3130         * configure.ac: Check for .gnu_attribute on MIPS.
3131         * configure, config.in: Regenerate.
3132         * config/mips/mips.c (mips_file_start): If supported, output
3133         attribute for floating-point ABI.
3134
3135 2007-06-30  Uros Bizjak  <ubizjak@gmail.com>
3136
3137         PR target/32433
3138         * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE.
3139         (ffs_cmove): New expander to expand using ctz pattern.
3140         (*ffs_cmove): Remove pattern.
3141         (*ffs_no_cmove): Enable only for !TARGET_CMOVE.
3142         (ffsdi2): Expand using ctz pattern.
3143         (*ffs_rex64): Remove pattern.
3144
3145 2007-06-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3146
3147         PR rtl-optimization/32296
3148         * pa.md (return): Delete pattern.
3149         (return_internal): Remove "(const_int 1)" from pattern.
3150         (epilogue): Use return_internal pattern for trivial returns.
3151         * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration.
3152         * pa.c (hppa_can_use_return_insn_p): Delete function.  Include "df.h".
3153
3154 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
3155
3156         * tree-ssa-pre.c (is_exception_related): New function
3157         (can_value_number_operation): Use it.
3158
3159 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
3160         
3161         Fix PR tree-optimization/32540
3162         Fix PR tree-optimization/31651
3163
3164         * tree-ssa-sccvn.c: New file.
3165
3166         * tree-ssa-sccvn.h: Ditto.
3167         
3168         * tree-vn.c: Include tree-ssa-sccvn.h
3169         (val_expr_paid_d): Removed.
3170         (value_table): Ditto.
3171         (vn_compute): Ditto.
3172         (val_expr_pair_hash): Ditto.
3173         (val_expr_pair_expr_eq): Ditto.
3174         (copy_vuses_from_stmt): Ditto.
3175         (vn_delete): Ditto.
3176         (vn_init): Ditto.
3177         (shared_vuses_from_stmt): Ditto.
3178         (print_creation_to_file): Moved up.
3179         (sort_vuses): Ditto.
3180         (sort_vuses_heap): Ditto.
3181         (set_value_handle): Make non-static.
3182         (make_value_handle): Ditto.
3183         (vn_add): Rewritten to use sccvn lookups.
3184         (vn_add_with_vuses): Ditto.
3185         (vn_lookup): Ditto (and second argument removed).
3186         (vn_lookup_with_vuses): Ditto.
3187         (vn_lookup_or_add): Ditto (and second argument removed);
3188         (vn_lookup_or_add_with_vuses): Ditto.
3189         (vn_lookup_with_stmt): New.
3190         (vn_lookup_or_add_with_stmt): Ditto.
3191         (create_value_handle_for_expr): Ditto.
3192
3193         * tree-ssa-pre.c: Include tree-ssa-sccvn.h.
3194         (seen_during_translate): New function.
3195         (phi_trans_lookup): Use iterative_hash_expr, not vn_compute.
3196         (phi_trans_add): Ditto.
3197         (constant_expr_p): FIELD_DECL is always constant.
3198         (phi_translate_1): Renamed from phi_translate, add seen bitmap.
3199         Use constant_expr_p.
3200         Avoid infinite recursion on mutually valued expressions.
3201         Change callers of vn_lookup_or_add.
3202         (phi_translate): New function.
3203         (compute_antic_safe): Allow phi nodes.
3204         (create_component_ref_by_pieces): Update for FIELD_DECL change.
3205         (find_or_generate_expression): Rewrite slightly.
3206         (create_expression_by_pieces): Updated for vn_lookup_or_add
3207         change.
3208         Update VN_INFO for new names.
3209         (insert_into_preds_of_block): Update for new names.
3210         (add_to_exp_gen): New function.
3211         (add_to_sets): Use vn_lookup_or_add_with_stmt.
3212         (find_existing_value_expr): Rewrite to changed vn_lookup.
3213         (create_value_expr_from): Ditto, and use add_to_exp_gen.
3214         (try_look_through_load): Removed.
3215         (try_combine_conversion): Ditto.
3216         (get_sccvn_value): New function.
3217         (make_values_for_phi): Ditto.
3218         (make_values_for_stmt): Ditto.
3219         (compute_avail): Rewritten for vn_lookup_or_add changes and to use
3220         SCCVN.
3221         (init_pre): Update for SCCVN changes.
3222         (fini_pre): Ditto.
3223         (execute_pre): Ditto.
3224
3225         * tree-flow.h (make_value_handle): Declare.
3226         (set_value_handle): Ditto.
3227         (sort_vuses_heap): Ditto.
3228         (vn_lookup_or_add_with_stmt): Ditto.
3229         (vn_lookup_with_stmt): Ditto.
3230         (vn_compute): Remove.
3231         (vn_init): Ditto.
3232         (vn_delete): Ditto.
3233         (vn_lookup): Update arguments.
3234
3235         * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h
3236         (tree-vn.o): Ditto.
3237         (tree-ssa-sccvn.o): New.
3238         (OBJS-common): Add tree-ssa-sccvn.o
3239         
3240 2007-06-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3241
3242         PR c/4076
3243         * c-typeck.c (build_external_ref): Don't mark as used if called
3244         from itself.
3245         * calls.c (rtx_for_function_call): Likewise.
3246         
3247 2007-06-30  Richard Sandiford  <richard@codesourcery.com>
3248
3249         Revert:
3250
3251         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
3252
3253         * dce.c (deletable_insn_p_1): New function, split out from...
3254         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
3255         specially, not those inside PARALLELs.  Remove BODY argument
3256         and adjust recursive call accordingly.
3257         (prescan_insns_for_dce): Update call to delete_insn_p.
3258
3259 2007-06-30  Rask Ingemann Lambertsen <rask@sygehus.dk>
3260
3261         * combine.c (combine_validate_cost): New parameter NEWOTHERPAT.
3262         (try_combine): Move potential calls to undo_all() so they happen
3263         before we commit to using the combined insns.
3264
3265 2006-06-30  Jan Hubicka  <jh@suse.cz>
3266
3267         * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit
3268         code.
3269
3270 2006-06-30  Thomas Neumann  <tneumann@users.sourceforge.net>
3271
3272         * ipa.c (cgraph_postorder): Cast according to the coding conventions.
3273         (cgraph_remove_unreachable_nodes): Likewise.
3274         * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0.
3275         * ipa-inline.c (update_caller_keys): Cast according to the coding
3276         conventions.
3277         (cgraph_decide_recursive_inlining): Likewise.
3278         (cgraph_decide_inlining_of_small_function): Likewise.
3279         (try_inline): Likewise.
3280         (cgraph_decide_inlining_incrementally): Likewise.
3281         * ipa-pure-const.c (get_function_state): Likewise.
3282         (scan_function): Likewise.
3283         (analyze_function): Likewise.
3284         (static_execute): Likewise.
3285         * gcc/ipa-reference.c (scan_for_static_refs): Likewise.
3286         (merge_callee_local_info): Likewise.
3287         (analyze_function): Use type safe memory macros.
3288         (static_execute): Likewise. Cast according to the coding conventions.
3289         * ipa-type-escape.c (scan_for_regs): Cast according to the coding
3290         conventions.
3291         * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable
3292         names.
3293         (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros.
3294         * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as
3295         variable names.
3296
3297 2007-06-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3298
3299         PR middle-end/30024
3300         * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0]
3301         for complex modes (both int and real).
3302
3303 2007-06-29  Jan Hubicka  <jh@suse.cz>
3304
3305         * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change.
3306
3307 2007-06-29  Jan Hubicka  <jh@suse.cz>
3308
3309         PR middle-end/32372
3310         * cse.c (cse_insn): Avoid invalid sharing in between register note and
3311         the insn pattern.
3312
3313 2007-06-29  Anatoly Sokolov <aesok@post.ru>
3314
3315         PR target/32335
3316         * config/avr/avr.c: Include dataflow header file.
3317         (expand_prologue): Adjust for prologue insn change.
3318         * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
3319         inside a insn.
3320
3321 2007-06-29  Richard Guenther  <rguenther@suse.de>
3322
3323         PR middle-end/32493
3324         * gimplify.c (gimplify_call_expr): Ignore variable argument parts
3325         during type verification.
3326
3327 2007-06-29  Jan Hubicka  <jh@suse.cz>
3328
3329         * recog.c (validate_change_rtx_1): Unshare TO argument.
3330
3331 2007-06-29  Uros Bizjak  <ubizjak@gmail.com>
3332
3333         PR tree-optimization/24659
3334         * tree-vect-transform.c (vectorizable_call): Handle
3335         (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
3336
3337         * config/i386/sse.md (vec_pack_sfix_v2df): New expander.
3338         * config/i386/i386.c (enum ix86_builtins)
3339         [IX86_BUILTIN_VEC_PACK_SFIX]: New constant.
3340         (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin
3341         description.
3342         (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as
3343         const using def_builtin_const.
3344         (ix86_expand_binop_builtin): Remove bogus assert() that insn wants
3345         input operands in the same modes as the result.
3346         (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT.
3347
3348 2007-06-29  Richard Sandiford  <rsandifo@nildram.co.uk>
3349
3350         * df-problems.c (df_set_unused_notes_for_mw): Fix formatting.
3351         (df_set_dead_notes_for_mw): Likewise.
3352
3353 2007-06-29  Eric Botcazou  <ebotcazou@adacore.com>
3354
3355         * c-common.c (pointer_int_sum): Do the negation in sizetype.
3356
3357 2007-06-28  DJ Delorie  <dj@redhat.com>
3358
3359         * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon.
3360
3361 2007-06-28  Geoffrey Keating  <geoffk@apple.com>
3362