OSDN Git Service

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