OSDN Git Service

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