OSDN Git Service

ABM intrinsics file.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2
3         * config/i386/abmintrin.h: New.
4         * config/i386/i386-c.c (ix86_target_macros_internal): Defined __ABM__.
5         * config/i386/x86intrin.h: Include abmintrin.h when __ABM__ is defined.
6
7 2009-12-01  Uros Bizjak  <ubizjak@gmail.com>
8
9         * config/i386/i386.md (SWI124): Rename from CRC32MODE.
10         (crc32modesuffix): Remove.
11         (crc32modeconstraint): Ditto.
12         (sse4_2_crc32<mode>): Update for renamed mode iterator.  Use
13         imodesuffix instead of crc32modesuffix and <r>m instead of
14         crc32modeconstraint.
15
16 2009-12-01  Jakub Jelinek  <jakub@redhat.com>
17
18         PR c++/42234
19         * tree-cfgcleanup.c (cleanup_omp_return): Don't ICE if control_bb
20         contains no statements.
21
22 2009-12-01  Grigori Fursin  <grigori.fursin@inria.fr>
23             Joern Rennecke  <amylaar@spamcop.net>
24
25         * cgraphunit.c (plugin.h): Include.
26         (ipa_passes): Invoke PLUGIN_ALL_IPA_PASSES_START /
27         PLUGIN_ALL_IPA_PASSES_END at start / end of processing.
28         * gcc-plugin.h (highlev-plugin-common.h, hashtab.h): Include.
29         (enum plugin_event): Define by including plugin.def.
30         Last enumerator is now called PLUGIN_EVENT_FIRST_DYNAMIC.
31         (plugin_event_name): Change type to const char **.
32         (get_event_last, get_named_event_id, unregister_callback): Declare.
33         (register_callback): Change type of event argument to int.
34         (highlev-plugin-common.h): New file.
35         * Makefile.in (GCC_PLUGIN_H): Add highlev-plugin-common.h and
36         $(HASHTAB_H)
37         (tree-optimize.o passes.o): Depend on $(PLUGIN_H).
38         (PLUGIN_HEADERS): Add opts.h, $(PARAMS_H) and plugin.def.
39         (s-header-vars): New rule.
40         (install-plugin): Depend on s-header-vars.  Install b-header-vars.
41         * params.c (get_num_compiler_params): New function.
42         * params.h (get_num_compiler_params): Declare.
43         * passes.c (plugin.h): Include.
44         (make_pass_instance): Invoke PLUGIN_NEW_PASS.
45         (do_per_function_toporder, pass_init_dump_file): No longer static.
46         (pass_fini_dump_file): Likewise.
47         (execute_one_pass): Likewise.  Invoke PLUGIN_OVERRIDE_GATE and
48         PLUGIN_PASS_EXECUTION.
49         (execute_ipa_pass_list): Invoke PLUGIN_EARLY_GIMPLE_PASSES_START and
50         PLUGIN_EARLY_GIMPLE_PASSES_END.
51         * plugin.c (plugin_event_name_init): New array, defined by
52         including plugin.def.
53         (FMT_FOR_PLUGIN_EVENT): Update.
54         (plugin_event_name): Change type to const char ** and initialize
55         to plugin_event_name_init.
56         (event_tab, event_last, event_horizon): New variable.
57         (get_event_last): New function.
58         (plugin_callbacks_init): New array.
59         (plugin_callbacks: Change type to struct callback_info **.
60         Initialize to plugin_callbacks_init.
61         (htab_event_eq, get_named_event_id, unregister_callback): New function.
62         (invoke_plugin_va_callbacks): Likewise.
63         (register_callback): Change type of event argument to int.
64         Handle new events.  Allow dynamic events.
65         (invoke_plugin_callbacks): Likewise.  Return success status.
66         (plugins_active_p): Allow dynamic callbacks.
67         * plugin.def: New file.
68         * plugin.h (invoke_plugin_callbacks): Update prototype.
69         (invoke_plugin_va_callbacks): Declare.
70         * tree-optimize.c (plugin.h): Include.
71         (tree_rest_of_compilation): Invoke PLUGIN_ALL_PASSES_START and
72         PLUGIN_ALL_PASSES_END.
73         * tree-pass.h (execute_one_pass, pass_init_dump_file): Declare.
74         (pass_fini_dump_file, do_per_function_toporder): Likewise.
75         * doc/plugin.texi: Document new event types.
76
77 2009-12-01  Martin Jambor  <mjambor@suse.cz>
78
79         PR tree-optimization/42237
80         * tree-sra.c (sra_ipa_modify_assign): Split gimple_reg_type assignments
81         in between references into two.
82
83 2009-12-01  Richard Guenther  <rguenther@suse.de>
84
85         * tree-inline.c (copy_tree_body_r): Do not set TREE_BLOCK
86         to the block of the call when remapping a type.
87
88 2009-12-01  Martin Jambor  <mjambor@suse.cz>
89
90         * cgraph.h (struct cgraph_edge): Reorder fields.  Make loop_nest
91         unsigned short int.
92         * ipa-prop.h (struct ipa_param_call_note): Likewise.
93         * ipa-prop.c (ipa_note_param_call): Initialize note->loop_nest.
94
95 2009-12-01  Richard Guenther  <rguenther@suse.de>
96
97         * final.c (rest_of_clean_state): If -fcompare-debug is
98         given dump final insns without UIDs.
99         * tree-ssa-live.c (remove_unused_scope_block_p): Remove
100         after_inlining checks.
101
102 2009-11-30  Chao-ying Fu  <fu@mips.com>
103
104         * config/mips/mips-dsp.md (mips_lhx_<mode>): Use sign_extend.
105
106 2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
107
108         * configure.ac (USE_CYGWIN_LIBSTDCXX_WRAPPERS): Define to reflect
109         status of AC_CHECK_FUNC for Cygwin DLL libstdc++ support wrappers.
110         * configure: Regenerate.
111         * config.in: Regenerate.
112
113         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Define list of --wrap
114         options for Cygwin DLL libstdc++ support wrappers.
115         (CXX_WRAP_SPEC_OPT): Define spec to use wrappers or not by default
116         according to defined value of USE_CYGWIN_LIBSTDCXX_WRAPPERS.
117         (CXX_WRAP_SPEC): Define entire wrapper spec in or out according to
118         whether USE_CYGWIN_LIBSTDCXX_WRAPPERS is even defined or not.
119         (LINK_SPEC): Include CXX_WRAP_SPEC.
120         * gcc/config/i386/winnt.c (wrapper_strcmp): New qsort helper function.
121         (i386_find_on_wrapper_list): Check if a function is found on the list
122         of libstdc++ wrapper options.
123         (i386_pe_file_end): If we are importing a wrapped function, also emit
124         an external declaration for the real version.
125         * config/i386/cygming.opt (muse-libstdc-wrappers): New option for
126         Cygwin targets. Update copyright year.
127
128 2009-11-30  Steve Ellcey  <sje@cup.hp.com>
129             Jakub Jelinek <jakub@redhat.com>
130
131         * function.c (instantiate_virtual_regs_in_insn): Copy to new reg
132         before forcing mode.
133
134 2009-11-30  Anatoly Sokolov  <aesok@post.ru>
135
136         * config/sh/sh.c (sh_promote_prototypes): Make static.
137         (sh_function_value, sh_libcall_value, sh_function_value_regno_p): New
138         functions.
139         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
140         * config/sh/sh.h: (FUNCTION_VALUE_REGNO_P): Redefine, use
141         sh_function_value_regno_p.
142         (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
143         * config/sh/sh-protos.h (sh_function_value_regno_p): Declare.
144         (sh_promote_prototypes) : Remove.
145
146 2009-11-30  Julian Brown  <julian@codesourcery.com>
147
148         * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Don't restrict Thumb-2
149         reloads to LO_REGS.
150
151 2009-11-30  Richard Henderson  <rth@redhat.com>
152
153         * config/i386/i386.c (ix86_vec_interleave_v2df_operator_ok): New.
154         (bdesc_special_args): Update insn codes.
155         (avx_vpermilp_parallel): Correct range check.
156         (ix86_rtx_costs): Handle vector permutation rtx codes.
157         (struct expand_vec_perm_d): Move earlier.
158         (get_mode_wider_vector): New.
159         (expand_vec_perm_broadcast_1): New.
160         (ix86_expand_vector_init_duplicate): Use it.  Tidy AVX modes.
161         (expand_vec_perm_broadcast): New.
162         (ix86_expand_vec_perm_builtin_1): Use it.
163         * config/i386/i386-protos.h: Update.
164         * config/i386/predicates.md (avx_vbroadcast_operand): New.
165         * config/i386/sse.md (AVX256MODE24P): New.
166         (ssescalarmodesuffix2s): New.
167         (avxhalfvecmode, avxscalarmode): Fill out to all modes.
168         (avxmodesuffixf2c): Add V8SI, V4DI.
169         (vec_dupv4sf): New expander.
170         (*vec_dupv4sf_avx): Add vbroadcastss alternative.
171         (*vec_set<mode>_0_avx, **vec_set<mode>_0_sse4_1): Macro-ize for
172         V4SF and V4SI.  Move C alternatives to front.  Add insertps and
173         pinsrd alternatives.
174         (*vec_set<mode>_0_sse2): Split out from ...
175         (vec_set<mode>_0): Macro-ize for V4SF and V4SI.
176         (vec_interleave_highv2df, vec_interleave_lowv2df): Require register
177         destination; use ix86_vec_interleave_v2df_operator_ok, instead of
178         ix86_fixup_binary_operands.
179         (*avx_interleave_highv2df, avx_interleave_lowv2df): Add movddup.
180         (*sse3_interleave_highv2df, sse3_interleave_lowv2df): New.
181         (*avx_movddup, *sse3_movddup): Remove.  New splitter from
182         vec_select form to vec_duplicate form.
183         (*sse2_interleave_highv2df, sse2_interleave_lowv2df): Use
184         ix86_vec_interleave_v2df_operator_ok.
185         (avx_movddup256, avx_unpcklpd256): Change to expanders, merge into ...
186         (*avx_unpcklpd256): ... here.
187         (*vec_dupv4si_avx): New.
188         (*vec_dupv2di_avx): Add movddup alternative.
189         (*vec_dupv2di_sse3): New.
190         (vec_dup<AVX256MODE24P>): Replace avx_vbroadcasts<AVXMODEF4P> and
191         avx_vbroadcastss256; represent with vec_duplicate instead of
192         nested vec_concat operations.
193         (avx_vbroadcastf128_<mode>): Rename from
194         avx_vbroadcastf128_p<avxmodesuffixf2c>256.
195         (*avx_vperm_broadcast_v4sf): New.
196         (*avx_vperm_broadcast_<AVX256MODEF2P>): New.
197
198 2009-11-30  Martin Jambor  <mjambor@suse.cz>
199
200         PR middle-end/42196
201         * tree-sra.c (struct access): New field grp_different_types.
202         (dump_access): Dump grp_different_types.
203         (compare_access_positions): Prefer scalars and vectors over other
204         scalar types.
205         (sort_and_splice_var_accesses): Set grp_different_types if appropriate.
206         (sra_modify_expr): Use the original also when dealing with a complex
207          or vector group accessed as multiple types.
208
209 2009-11-30  Richard Henderson  <rth@redhat.com>
210
211         * config/i386/i386.c (avx_vperm2f128_parallel): New.
212         * config/i386/i386-protos.h: Declare it.
213         * config/i386/predicates.md (avx_vperm2f128_v8sf_operand,
214         avx_vperm2f128_v8si_operand, avx_vperm2f128_v4df_operand): New.
215         * config/i386/sse.md (avx_vperm2f128<mode>3): Change to expander.
216         (*avx_vperm2f128<mode>_full): Renamed from avx_vperm2f128<mode>3.
217         (*avx_vperm2f128<mode>_nozero): New.
218
219 2009-11-30  Richard Henderson  <rth@redhat.com>
220
221         * config/i386/i386-builtin-types.def (V4DF_FTYPE_V4DF_V4DF_V4DI): New.
222         (V8SF_FTYPE_V8SF_V8SF_V8SI): New.
223         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Support
224         V4DF and V8SF for AVX; relax constraint on V4SF to SSE1 from SSE2.
225         (IX86_BUILTIN_VEC_PERM_V4DF, IX86_BUILTIN_VEC_PERM_V8SF): New.
226         (bdesc_args): Add them.
227         (ix86_expand_builtin): Expand them.
228         (expand_vec_perm_pshufb2): Only operate on 16-byte vectors.
229
230 2009-11-30  Martin Jambor  <mjambor@suse.cz>
231
232         PR middle-end/42206
233         * ipa-prop.c (ipa_write_node_info): Initialize note_count to zero.
234
235 2009-11-30  Jakub Jelinek  <jakub@redhat.com>
236
237         * ipa-reference.c (propagate): Only dump bitmaps if computed.
238
239 2009-11-30  Olga Golovanevsky  <olga@il.ibm.com>
240
241         PR middle-end/39806
242         * ipa-struct-reorg.c (new_var_eq): Use DECL_UID to hash new variables.
243         (new_var_hash): Likewise.
244         (is_in_new_vars_htab): Likewise.
245         (add_to_new_vars_htab): Likewise.
246
247 2009-11-30  Ira Rosen  <irar@il.ibm.com>
248
249         * tree-vect-stmts.c (vectorizable_assignment): Support
250         multiple types.
251
252 2009-11-30  Richard Guenther  <rguenther@suse.de>
253
254         * doc/contrib.texi (Contributors): Add myself.
255
256 2009-11-30  Richard Guenther  <rguenther@suse.de>
257
258         * tree.c (free_lang_data): Do not set debug_info_level to
259         none if terse.
260
261 2009-11-30  Richard Guenther  <rguenther@suse.de>
262
263         PR middle-end/42119
264         PR fortran/38530
265         * expr.c (expand_expr_addr_expr_1): Properly expand the initializer
266         of CONST_DECLs.
267
268 2009-11-30  Richard Guenther  <rguenther@suse.de>
269
270         * tree-into-ssa.c (insert_phi_nodes): Add PHI nodes in
271         variable UID order.
272
273 2009-11-30  Richard Guenther  <rguenther@suse.de>
274
275         * tree-dump.c (dump_option_value_in): Add TDF_NOUID.
276         * tree-pass.h (TDF_NOUID): Likewise.
277         * print-rtl.c: Include tree-pass.h.
278         (print_mem_expr): Pass dump_flags.
279         (print_rtx): Likewise.
280         * print-tree.c: Include tree-pass.h.
281         (print_node_brief): Handle TDF_NOUID.
282         (print_node): Likewise.
283         * tree-pretty-print.c (dump_decl_name): Likewise.
284         (dump_generic_node): Likewise.
285         * Makefile.in (print-rtl.o, print-tree.o): Add $(TREE_PASS_H)
286         dependency.
287
288 2009-11-30  Nick Clifton  <nickc@redhat.com>
289
290         * config/stormy16/stormy16-lib2-count-leading-zeros.c: Delete.
291         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Remove
292         stormy16-lib2-count-leading-zeros.c.
293         * config/stormy16/stormy16-lib2.c (__clzhi2): Move code from
294         __stormy16_count_leading_zeros() into this function.
295         (__ctzhi2): Use __builtin_clz.
296         (__ffshi2): Likewise.
297
298 2009-11-30  Eric Botcazou  <ebotcazou@adacore.com>
299
300         * config/sparc/sparc.c (DF_MODES): Simplify.
301         (TF_ONLY_MODES, OF_ONLY_MODES): Delete.
302         (TF_MODES, OF_MODES): Adjust for above change.
303         (TF_MODES_NO_S, OF_MODES_NO_S): Likewise.
304         *  config/sparc/sparc.h (REGNO_REG_CLASS): Move around.
305
306 2009-11-30  Paolo Bonzini  <bonzini@gnu.org>
307
308         PR rtl-optimization/41812
309         * fwprop.c (local_md, local_lr): New globals.
310         (process_defs, process_uses): Remove local_md argument.  Never
311         consider dead pseudos to have singleton def-use chains.
312         (single_def_use_enter_block): Perform LR simulation.
313         (build_single_def_use_links): Remove local_md local variable.
314         Add DF_NOTE.  Allocate local_lr.
315         (fwprop_done): Do not remove DF_CHAIN, we do not use it anymore.
316         * df-problems.c (df_md_scratch): New.
317         (df_md_alloc, df_md_free): Allocate/free it.
318         (df_md_local_compute): Only include live registers in init.
319         (df_md_transfer_function): Prune the in-set computed by
320         the confluence function, and the gen-set too.
321
322 2009-11-30  Hans-Peter Nilsson  <hp@axis.com>
323
324         PR rtl-optimization/40086
325         * reorg.c (relax_delay_slots): When looking for redundant insn at
326         the branch target, use next_real_insn, not next_active_insn.
327
328 2009-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
329
330         * doc/install.texi: Update minimum MPC version to 0.8.
331
332 2009-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
333
334         * config/rs6000/rs6000.md (fnmaddsf4_powerpc_1): Remove
335         HONOR_SIGNED_ZEROS final condition.
336         (fnmsubsf4_powerpc_1): Same.
337         (fnmadddf4_fpr_1): Same.
338         (fnmsubdf4_fpr_1): Same.
339
340 2009-11-29  Ira Rosen  <irar@il.ibm.com>
341
342         PR tree-optimization/42193
343         * tree-vect-stmts.c (vectorizable_operation): Set vectorization factor
344         to 1 in case of basic block SLP.
345         (vectorizable_load): Likewise.
346
347 2009-11-28  Jan Hubicka  <jh@suse.cz>
348
349         * cgraph.c (same_body_alias_1): Break out of
350         (same_body_alias): ... here; remove comdat check; it is handled
351         in cp already.
352         (cgraph_add_thunk): New.
353         (dump_cgraph_node): Dump aliases and thunks.
354         * cgraph.h (cgraph_thunk_info): New structure.
355         (struct cgraph_node): Add thunk info.
356         (cgraph_add_thunk): New.
357         * cgraphunit.c (cgraph_emit_thunks): Remove.
358         (cgraph_finalize_compilation_unit): Do not call cgraph_emit_thunks.
359         (assemble_thunk): New function.
360         (cgraph_expand_function): Handle thunks.
361         (thunk_adjust): New.
362         (init_lowered_empty_function): New.
363         * cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS):
364         Remove.
365         * lto-cgraph.c (lto_output_node): Stream thunk info.
366         (input_node): Likewise.
367         * langhooks.h (lang_hooks_for_callgraph): Remove emit_associated_thunks.
368         * langhooks-def.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Remove.
369         (LANG_HOOKS_CALLGRAPH_INITIALIZER): Update.
370         * i386.c (x86_output_mi_thunk): Make output prettier.
371
372 2009-11-28  Richard Guenther  <rguenther@suse.de>
373
374         PR tree-optimization/42183
375         * tree-nrv.c (tree_nrv): Bail out if the RESULT_DECL has its
376         address taken.  Merge the addressable state of the NRV
377         variable and the result instead of copying it.
378
379 2009-11-28  Jakub Jelinek  <jakub@redhat.com>
380
381         * matrix-reorg.c (analyze_matrix_allocation_site): Remove unused
382         malloc_fname variable.
383         (check_allocation_function): Remove unused gsi and bb_level_0
384         variables.
385         (transform_access_sites): Remove unused d_type_size and d_type_size_k
386         variables.
387         * omega.c (resurrect_subs): Remove unused n variable.
388         (omega_solve_geq): Remove unused neweqns variable.
389         * lto-streamer-in.c (lto_read_tree): Remove unused end_marker variable.
390         * tree-inline.c (declare_return_variable): Remove USE_P argument,
391         return use instead of var.
392         (remap_decl, remap_block): Remove unused fn variable.
393         (expand_call_inline): Remove unused retvar variable, adjust
394         declare_return_variable caller.
395         (optimize_inline_calls): Remove unused prev_fn variable.
396         * tree-vect-slp.c (vect_analyze_slp_instance): Remove unused ncopies
397         variable.
398         (vect_create_mask_and_perm): Remove unused group_size and dr_chain_size
399         variables.
400         * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle MINUS_EXPR
401         properly.
402         * tree-vect-loop.c (vect_analyze_loop_form): Remove unused backedge
403         variable.
404         (vect_create_epilog_for_reduction): Remove unused bytesize variable.
405         * omp-low.c (workshare_safe_to_combine_p): Remove par_entry_bb
406         parameter.  Remove unused par_stmt variable.
407         (determine_parallel_type): Adjust workshare_safe_to_combine_p caller.
408         (expand_omp_sections): Remove unused l1 variable.
409         (lower_omp_for): Remove unused ilist variable.
410         * tree-loop-distribution.c (mark_nodes_having_upstream_mem_writes):
411         Remove unused has_upstream_mem_write_p variable.
412         * recog.c (decode_asm_operands): Remove unused noperands variable.
413         * tree-ssa-alias.c (refs_may_alias_p_1): Remove unused size1 and
414         size2 variable.
415         * libgcov.c (__gcov_merge_delta): Remove unused last variable.
416         * tree-call-cdce.c (gen_conditions_for_pow_int_base): Remove unused
417         base_nm variable.
418         (gen_conditions_for_pow): Remove unused ec variable.
419         * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove unused size
420         variable.
421         * ipa-struct-reorg.c (program_redefines_malloc_p): Remove unused
422         fndecl variable.
423         * tree-ssa-sink.c (statement_sink_location): Remove unused code
424         variable.
425         * regmove.c (copy_src_to_dest): Remove unused insn_uid and move_uid
426         variables.
427         * tree-complex.c (create_one_component_var): Remove unused inner_type
428         variable.
429         * calls.c (emit_call_1): Don't GEN_INT (struct_value_size)
430         unnecessarily when GEN_*CALL omits that argument.
431         * regrename.c (regrename_optimize): Remove unused regs_seen variable.
432         (build_def_use): Remove unused icode variable.
433         * ipa-pure-const.c (check_call): Remove unused callee and avail
434         variables.
435         * tree-dfa.c (add_referenced_var): Remove unused v_ann variable.
436         * tree-vect-patterns.c (vect_recog_pow_pattern): Remove unused type
437         variable.
438         (vect_pattern_recog): Remove unused stmt variable.
439         * sel-sched-ir.c (make_regions_from_the_rest): Remove unused
440         new_regions variable.
441         * postreload.c (reload_cse_simplify_operands): Remove unused mode
442         variable.
443         * tree-parloops.c (create_call_for_reduction_1): Remove unused
444         addr_type variable.
445         (create_parallel_loop): Remove unused res variable.
446         (gen_parallel_loop): Remove unused nloop variable.
447         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
448         * value-prof.c (gimple_mod_subtract_transform,
449         gimple_stringops_transform): Remove unused value variable.
450         (gimple_stringops_values_to_profile): Remove unused fcode variable.
451         * tree-vrp.c (register_new_assert_for): Remove unused found variable.
452         (vrp_visit_switch_stmt): Remove unused n variable.
453         * tree-vect-stmts.c (vectorizable_conversion): Remove unused expr
454         variable.
455         (vectorizable_operation): Remove unused shift_p variable.
456         (vectorizable_store): Remove unused first_stmt_vinfo variable.
457         * tree-ssa-operands.c (add_stmt_operand): Remove unused v_ann variable.
458         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove unused bb
459         variable.
460         (vect_permute_store_chain): Remove unused scalar_dest variable.
461         (vect_supportable_dr_alignment): Remove unused invariant_in_outerloop
462         variable.
463         * tree-ssa-threadupdate.c (thread_single_edge): Remove unused
464         local_info variable.
465         * tree-optimize.c (tree_rest_of_compilation): Remove unused node
466         variable.
467         * optabs.c (expand_binop): Remove unused equiv_value variable.
468         (emit_libcall_block): Remove unused prev variable.
469         (init_optabs): Remove unused int_mode variable.
470         * tree-ssa-structalias.c (scc_visit): Remove unused have_ref_node
471         variable.
472         (do_structure_copy): Remove unused lhsbase and rhsbase variables.
473         (find_func_aliases): Remove unused rhstype variable.
474         (ipa_pta_execute): Remove unused varid variable.
475
476 2009-11-28  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
477
478         * config/avr/avr.h (ASM_OUTPUT_EXTERNAL): Add.
479
480 2009-11-28  David Binderman  <dcb314@hotmail.com>
481
482         * ira-color.c (put_allocno_into_bucket): Remove set but not used
483         local variable hard_regs_num.
484         * ira-lives.c (process_single_reg_class_operands): Remove cover_class.
485         * loop-unswitch.c (unswitch_loop): Remove zero_bitmap.
486         * lower-subreg.c (decompose_multiword_subregs): Remove next.
487
488 2009-11-27  Martin Jambor  <mjambor@suse.cz>
489
490         PR middle-end/42006
491         * tree-sra.c (get_replaced_param_substitute): Call create_tmp_var
492         instead of create_tmp_var.  Set DECL_GIMPLE_REG_P to one manually
493         for vector and complex types.
494         (get_adjustment_for_base): Describe return value in the comment.
495
496 2009-11-27  Nick Clifton  <nickc@redhat.com>
497
498         * longlong.h (count_leading_zeros): Define macro for stormy16 target.
499         (COUNT_LEADING_ZEROS_0): Likewise.
500         * config/stormy16/stormy16-lib2.c: Arrange for separate
501         compilation of each function.
502         (__ffshi2): New function.
503         (__stormy16_count_leading_zeros): New function.
504         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Use stub files to
505         compile each function into its own object file.
506         (stormy16-lib2-ashlsi3.c): New stub file.
507         (stormy16-lib2-ashrsi3.c): New stub file.
508         (stormy16-lib2-clzhi2.c): New stub file.
509         (stormy16-lib2-count-leading-zeros.c): New stub file.
510         (stormy16-lib2-ctzhi2.c): New stub file.
511         (stormy16-lib2-divsi3.c): New stub file.
512         (stormy16-lib2-ffshi2.c): New stub file.
513         (stormy16-lib2-lshrsi3.c): New stub file.
514         (stormy16-lib2-modsi3.c): New stub file.
515         (stormy16-lib2-parityhi2.c): New stub file.
516         (stormy16-lib2-popcounthi2.c): New stub file.
517         (stormy16-lib2-udivmodsi4.c): New stub file.
518         (stormy16-lib2-udivsi3.c): New stub file.
519         (stormy16-lib2-umodsi3.c): New stub file.
520
521 2009-11-27  Richard Henderson  <rth@redhat.com>
522
523         * config/i386/sse.md (vec_interleave_highv16qi,
524         vec_interleave_lowv16qi, vec_interleave_highv8hi,
525         vec_interleave_lowv8hi, vec_interleave_highv4si,
526         vec_interleave_lowv4si, vec_interleave_highv2di,
527         vec_interleave_lowv2di, vec_interleave_highv4sf,
528         vec_interleave_lowv4sf, vec_interleave_highv2df,
529         vec_interleave_lowv2df): Remove expanders.
530         (sse_unpcklps, sse_unpckhps, sse2_unpckhpd_exp, sse2_unpcklpd_exp,
531         sse2_punpckhqdq, sse2_punpcklqdq, sse2_punpckhbw, sse2_punpcklbw,
532         sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq):
533         Rename to their proper vec_interleave equivalent.  Update all users
534         to the new name.
535         * config/i386/i386.c, config/i386/i386.md: Update all users.
536
537 2009-11-27  Michael Matz  <matz@suse.de>
538
539         PR rtl-optimization/42084
540         * cfgexpand.c (maybe_cleanup_end_of_block): Add new parameter,
541         use it to stop walking.
542         (expand_gimple_cond): Adjust call to above.
543
544 2009-11-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
545
546         PR target/41810
547         * gthr-solaris.h (__gthread_mutex_destroy): Remove UNUSED.
548         [SUPPORTS_WEAK && GTHREAD_USE_WEAK] (__gthread_active_p): Use
549         __extension__ to allow cast from function pointer to object
550         pointer in C++.
551         * doc/install.texi (--enable-threads): Clarify use of Solaris threads.
552
553 2009-11-27  Steven Bosscher  <steven@gcc.gnu.org>
554
555         * config/ia64/itanium1.md: Remove.
556         * config/ia64/ia64.md: Do not include it.
557         * config/ia64/ia64.c (ia64_handle_option): Remove "itanium",
558         "itanium1", and "merced" from the processor alias table.
559         (clocks, add_cycles): Remove global variables.
560         (ia64_sched_reorder2): Don't set/use them.
561         (ia64_dfa_new_cycle, ia64_h_i_d_extended, ia64_reorg): Likewise.
562         (bundling): Likewise. Remove extra pass for MMMUL/MMSHF.
563
564 2009-11-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
565
566         * config/s390/s390.c (last_scheduled_insn): New variable.
567         (s390_fpload_toreg, s390_z10_prevent_earlyload_conflicts): New
568         functions.
569         (s390_sched_reorder, s390_sched_variable_issue): New functions.
570         (TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_REORDER): Target hooks
571         defined.
572
573 2009-11-27  Michael Matz  <matz@suse.de>
574
575         PR c++/41906
576         * tree-eh.c (lower_catch): Stop after expanding a catch-all.
577
578 2009-11-27  Richard Guenther  <rguenther@suse.de>
579
580         * timevar.def (TV_LOOP_MOVE_INVARIANTS, TV_LOOP_UNSWITCH,
581         TV_LOOP_UNROLL, TV_LOOP_DOLOOP): New timevars.
582         * loop-init.c (pass_rtl_move_loop_invariants): Use
583         TV_LOOP_MOVE_INVARIANTS.
584         (pass_rtl_unswitch): Use TV_LOOP_UNSWITCH.
585         (pass_rtl_unroll_and_peel): Use TV_LOOP_UNROLL.
586         (pass_rtl_doloop): Use TV_LOOP_DOLOOP.
587
588 2009-11-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
589
590         * emit-rtl.c (next_active_insn, prev_active_insn): Correct comment.
591
592 2009-11-27  Jakub Jelinek  <jakub@redhat.com>
593
594         * config/i386/i386.c (ix86_emit_restore_sse_regs_using_mov): Remove
595         unused insn variable.
596         * genemit.c (output_peephole2_scratches): Only declare and initialize
597         _regs_allocated if it will be ever used.
598         * cfgloopmanip.c (create_empty_if_region_on_edge): Remove unused
599         succ_bb variable.
600         (create_empty_loop_on_edge): Remove unused freq and cnt variables.
601         * unwind-c.c (PERSONALITY_FUNCTION): Remove unused action_record
602         variable.
603
604         * opts.c (decode_options): If optimize is bigger than 255,
605         set it to 255.
606
607 2009-11-26  Richard Henderson  <rth@redhat.com>
608
609         * config/i386/sse.md (mulv16qi3): Change back from an expander
610         to an insn-and-split.
611         (mulv4si): Mention AVX not XOP for AVX exception.
612         (*sse2_mulv4si3): Likewise.
613         (mulv2di3): Use vmulld not vpmacsdd for XOP expansion.  Tidy.
614
615 2009-11-26  Bernd Schmidt  <bernd.schmidt@analog.com>
616
617         * cfgexpand (n_stack_vars_conflict): New static variable.
618         (triangular_index): Reduce likelyhood of overflow by performing
619         the division before the multiplication.
620         (resize_stack_vars_conflict): Call fatal_error if overflow
621         occurred in triangular_index.  Update n_stack_vars_conflict.
622
623         PR rtl-opt/38582
624         * regrename.c (struct du_chain): Remove member earlyclobber.
625         (scan_rtx_reg): Don't set it.  Remove argument earlyclobber,
626         all callers changed.
627         (scan_rtx): Remove argument earlyclobber, all callers changed.
628         (hide_operands, restore_operands, record_out_operands): New functions,
629         broken out of build_def_use.
630         (build_def_use): Call them as necessary.
631
632         * regrename.c (struct du_head): New members id, conflicts,
633         hard_conflicts and cannot_rename.
634         (enum scan_actions): Remove terminate_all_read and
635         terminate_overlapping_read; add mark_all_read.
636         (scan_actions_name): Likewise.
637         (du_head_p): New typedef.  Define a vector type for it.
638         (id_to_chain): New static variable.
639         (note_sets, clear_dead_regs): Delete functions.
640         (free_chain_data): New function.
641         (merge_overlapping_regs): Simply walk the conflicts bitmap.
642         Remove argument B, all callers changed.
643         (regrename_optimize): Allocate id_to_chain.  Ignore chains that have
644         the cannot_rename bit set.  Update regno and nregs of a renamed chain.
645         Call free_chain_data when done.
646         (do_replace): Remove death notes when the renamed reg is set in the
647         last insn; add them if not.
648         (mark_conflict, note_sets_clobbers): New static function.
649         (fail_current_block, current_id, open_chains_set, live_hard_regs): New
650         static variables.
651         (scan_rtx_reg): Keep track of conflicts between chains, and between
652         chains and hard regs.  Don't terminate chains when we find a read we
653         can't handle, mark it unrenameable instead.  For terminate_write,
654         terminate chains that are written with an exact match or a superset
655         of registers.  Set fail_current_block if multi-word lifetimes are too
656         complex to handle.
657         (scan_rtx_address): Use mark_all_read instead of terminate_all_read.
658         (build_def_use): Initialize current_id, live_chains and live_hard_regs;
659         free memory for them when done.
660         Rearrange the steps so that earlyclobbers are noted before reads
661         are processed.  Add new steps to keep track of hard register lifetimes
662         outside insn operands.
663
664 2009-11-26  Richard Guenther  <rguenther@suse.de>
665
666         * tree-ssa-dce.c (nr_walks): New variable.
667         (mark_aliased_reaching_defs_necessary): Adjust oracle cut-off.
668         (perform_tree_ssa_dce): Init nr_walks.
669
670 2009-11-26  Michael Matz  <matz@suse.de>
671
672         PR tree-optimization/41905
673         * tree-eh.c (lower_eh_constructs_2): Don't add assignments
674         below statements that can't fall thru.
675
676 2009-11-26  Michael Matz  <matz@suse.de>
677
678         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
679         expand_builtin_sprintf): Remove.
680         (expand_builtin): Don't call them.
681
682 2009-11-26  Richard Guenther  <rguenther@suse.de>
683
684         * tree-ssa-dce.c (perform_tree_ssa_dce): Allocate visited bitmap.
685
686 2009-11-26  Nick Clifton  <nickc@redhat.com>
687
688         * config/rx/rx.c (rx_expand_epilogue): Add checks for sibcalls
689         being used incorrectly.
690         (rx_function_ok_for_sibcall): New function.  Do not allow indirect
691         sibcalls, or sibcalls from interrupt functions.
692         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
693         * config/rx/rx.md (sibcall): Convert to a define_expand.  Check
694         for a MEM inside a MEM.
695         (sibcall_value): Likewise.
696         (sibcall_internal): New pattern containing old sibcall pattern.
697         (sibcall_value_internal): Likewise.
698
699 2009-11-25  Richard Henderson  <rth@redhat.com>
700
701         * config/i386/i386-builtin-types.awk (DEF_VECTOR_TYPE): Allow an
702         optional 3rd argument to define the mode.
703         * config/i386/i386-builtin-types.def (UQI, UHI, USI, UDI): New.
704         (V2UDI, V4USI, V8UHI, V16UQI): New.
705         (V4SF_FTYPE_V4SF_V4SF_V4SI, V2UDI_FTYPE_V2UDI_V2UDI_V2UDI,
706         V4USI_FTYPE_V4USI_V4USI_V4USI, V8UHI_FTYPE_V8UHI_V8UHI_V8UHI,
707         V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): New.
708         * config/i386/i386-modes.def: Rearrange for double-wide AVX.
709         * config/i386/i386-protos.h (ix86_expand_vec_extract_even_odd): New.
710         * config/i386/i386.c (IX86_BUILTIN_VEC_PERM_*): New.
711         (bdesc_args): Add the builtin definitions to match.
712         (ix86_expand_builtin): Expand them.
713         (ix86_builtin_vectorization_cost): Rename from
714         x86_builtin_vectorization_cost.
715         (ix86_vectorize_builtin_vec_perm, struct expand_vec_perm_d,
716         doublesize_vector_mode, expand_vselect, expand_vselect_vconcat,
717         expand_vec_perm_blend, expand_vec_perm_vpermil,
718         expand_vec_perm_pshufb, expand_vec_perm_1,
719         expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
720         expand_vec_perm_interleave2, expand_vec_perm_pshufb2,
721         expand_vec_perm_even_odd_1, expand_vec_perm_even_odd,
722         ix86_expand_vec_perm_builtin_1, extract_vec_perm_cst,
723         ix86_expand_vec_perm_builtin, ix86_vectorize_builtin_vec_perm_ok,
724         ix86_expand_vec_extract_even_odd, TARGET_VECTORIZE_BUILTIN_VEC_PERM,
725         TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
726         * sse.md (SSEMODE_EO): New.
727         (vec_extract_even<mode>): Use SSEMODE_EO and
728         ix86_expand_vec_extract_even_odd.
729         (vec_extract_odd<mode>): Likewise.
730         (mulv16qi3, vec_pack_trunc_v8hi, vec_pack_trunc_v4si,
731         vec_pack_trunc_v2di): Use ix86_expand_vec_extract_even_odd.
732
733 2009-11-25  Richard Henderson  <rth@redhat.com>
734
735         * target.h (targetm.vectorize.builtin_vec_perm_ok): New.
736         * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
737         * hooks.h, hooks.c (hook_bool_tree_tree_true): New.
738         * tree-vect-slp.c (vect_create_mask_and_perm): Don't create
739         the vector constant here...
740         (vect_transform_slp_perm_load): ... do it here instead.  Validate
741         that the permutation vector is implementable by the target.
742
743 2009-11-25  Jakub Jelinek  <jakub@redhat.com>
744
745         * config/rs6000/sysv4.opt (mregnames): Change Var to rs6000_regnames.
746         * config/rs6000/sysv4.h (TARGET_REGNAMES): Define.
747
748         * print-rtl.c (print_rtx): When printing newline, append
749         print_rtx_head and indentation after the newline.
750
751         PR target/42165
752         * config/i386/i386.c (print_operand): For 32-byte memory use
753         YMMWORD in -masm=intel mode.  Use TBYTE instead of XWORD.
754         * config/i386/i386.md (crc32modesuffix): Expand to nothing
755         in -masm=intel mode.
756         (sse4_2_crc32di): Print just crc32 instead of crc32q in
757         -masm=intel mode.
758         * config/i386/mmx.md (*mmx_pinsrw): Print correct size of
759         memory operand in -masm=intel mode.
760         * config/i386/sse.md (*avx_pinsr<ssevecsize>, *sse4_1_pinsrb,
761         *sse2_pinsrw): Likewise.
762         (sse_cvtss2siq, sse_cvtss2siq_2, sse_cvttss2siq): Don't print
763         q suffix in -masm=intel mode.
764
765 2009-11-25  Eric Botcazou  <ebotcazou@adacore.com>
766
767         PR target/10127
768         PR ada/20548
769         PR middle-end/42004
770         * dwarf2out.c (dwarf2out_args_size_adjust): Rename to...
771         (dwarf2out_stack_adjust): ...this.  Do not adjust the arg size for
772         ACCUMULATE_OUTGOING_ARGS targets.  Rename former version to...
773         (dwarf2out_notice_stack_adjust): ...this.  Adjust for above renaming.
774         (dwarf2out_frame_debug_expr): Revert previous change and adjust for
775         above renaming.
776         (dwarf2out_frame_debug): Add ??? comment.  Adjust for above renaming.
777
778 2009-11-25  Uros Bizjak  <ubizjak@gmail.com>
779
780         * config/i386/predicates.md (emms_operation): New predicate.
781         (vzeroupper_operation): Ditto.
782         (vzeroall_operation): Improve pattern recognition.
783         * config/i386/sse.md (avx_vzeroupper_rex64): Remove insn pattern.
784         (avx_vzeroupper): Change insn pattern to expander.
785         (*avx_vzeroupper): New insn pattern.  Use vzeroupper_operation
786         predicate.
787         (*avx_vzeroall): Remove operands 1 and 2.
788         * config/i386/mmx.md (mmx_emms): Change insn pattern to expander.
789         (mmx_femms): Ditto.
790         (*mmx_emms): New insn pattern.  Use emms_operation predicate.
791         (*mmx_femms): Ditto.
792         * config/i386/i386.c (enum ix86_builtins)
793         <IX86_BUILTIN_VZEROUPPER_REX64>: Remove.
794         (struct builtin_description) <CODE_FOR_avx_vzeroupper_rex64>:
795         Remove initailization.
796         <CODE_FOR_avx_vzeroupper>: Unconditionally initialize here.
797
798 2009-11-25  Paul Brook  <paul@codesourcery.com>
799
800         * config/arm/arm.md (consttable_4): Handle (high ...).
801
802 2009-11-25  Robert Nelson  <robert.nelson@digikey.com>
803             Richard Earnshaw  <rearnsha@arm.com>
804
805         * arm.h (enum vfp_reg_type): Add VFP_NONE.
806         * arm.c (all_fpus): Use it for floating point units that aren't based
807         on the VFP architecture.
808         (aapcs_vfp_is_call_or_return_candidate): Make base_mode a pointer to
809         enum machine_mode.
810
811 2009-11-25  H.J. Lu  <hongjiu.lu@intel.com>
812
813         * alias.c: Remove trailing white spaces.
814         * alloc-pool.c: Likewise.
815         * alloc-pool.h: Likewise.
816         * attribs.c: Likewise.
817         * auto-inc-dec.c: Likewise.
818         * basic-block.h: Likewise.
819         * bb-reorder.c: Likewise.
820         * bt-load.c: Likewise.
821         * builtins.c: Likewise.
822         * builtins.def: Likewise.
823         * c-common.c: Likewise.
824         * c-common.h: Likewise.
825         * c-cppbuiltin.c: Likewise.
826         * c-decl.c: Likewise.
827         * c-format.c: Likewise.
828         * c-lex.c: Likewise.
829         * c-omp.c: Likewise.
830         * c-opts.c: Likewise.
831         * c-parser.c: Likewise.
832         * c-pretty-print.c: Likewise.
833         * c-tree.h: Likewise.
834         * c-typeck.c: Likewise.
835         * caller-save.c: Likewise.
836         * calls.c: Likewise.
837         * cfg.c: Likewise.
838         * cfganal.c: Likewise.
839         * cfgexpand.c: Likewise.
840         * cfghooks.c: Likewise.
841         * cfghooks.h: Likewise.
842         * cfglayout.c: Likewise.
843         * cfgloop.c: Likewise.
844         * cfgloop.h: Likewise.
845         * cfgloopmanip.c: Likewise.
846         * cfgrtl.c: Likewise.
847         * cgraph.c: Likewise.
848         * cgraph.h: Likewise.
849         * cgraphbuild.c: Likewise.
850         * cgraphunit.c: Likewise.
851         * cif-code.def: Likewise.
852         * collect2.c: Likewise.
853         * combine.c: Likewise.
854         * convert.c: Likewise.
855         * coverage.c: Likewise.
856         * crtstuff.c: Likewise.
857         * cse.c: Likewise.
858         * cselib.c: Likewise.
859         * dbgcnt.c: Likewise.
860         * dbgcnt.def: Likewise.
861         * dbgcnt.h: Likewise.
862         * dbxout.c: Likewise.
863         * dce.c: Likewise.
864         * ddg.c: Likewise.
865         * ddg.h: Likewise.
866         * defaults.h: Likewise.
867         * df-byte-scan.c: Likewise.
868         * df-core.c: Likewise.
869         * df-problems.c: Likewise.
870         * df-scan.c: Likewise.
871         * df.h: Likewise.
872         * dfp.c: Likewise.
873         * diagnostic.c: Likewise.
874         * diagnostic.h: Likewise.
875         * dominance.c: Likewise.
876         * domwalk.c: Likewise.
877         * double-int.c: Likewise.
878         * double-int.h: Likewise.
879         * dse.c: Likewise.
880         * dwarf2asm.c: Likewise.
881         * dwarf2asm.h: Likewise.
882         * dwarf2out.c: Likewise.
883         * ebitmap.c: Likewise.
884         * ebitmap.h: Likewise.
885         * emit-rtl.c: Likewise.
886         * et-forest.c: Likewise.
887         * except.c: Likewise.
888         * except.h: Likewise.
889         * expmed.c: Likewise.
890         * expr.c: Likewise.
891         * expr.h: Likewise.
892         * final.c: Likewise.
893         * flags.h: Likewise.
894         * fold-const.c: Likewise.
895         * function.c: Likewise.
896         * function.h: Likewise.
897         * fwprop.c: Likewise.
898         * gcc.c: Likewise.
899         * gcov-dump.c: Likewise.
900         * gcov-io.c: Likewise.
901         * gcov-io.h: Likewise.
902         * gcov.c: Likewise.
903         * gcse.c: Likewise.
904         * genattr.c: Likewise.
905         * genattrtab.c: Likewise.
906         * genautomata.c: Likewise.
907         * genchecksum.c: Likewise.
908         * genconfig.c: Likewise.
909         * genflags.c: Likewise.
910         * gengtype-parse.c: Likewise.
911         * gengtype.c: Likewise.
912         * gengtype.h: Likewise.
913         * genmddeps.c: Likewise.
914         * genmodes.c: Likewise.
915         * genopinit.c: Likewise.
916         * genpreds.c: Likewise.
917         * gensupport.c: Likewise.
918         * ggc-common.c: Likewise.
919         * ggc-page.c: Likewise.
920         * ggc-zone.c: Likewise.
921         * ggc.h: Likewise.
922         * gimple-iterator.c: Likewise.
923         * gimple-low.c: Likewise.
924         * gimple-pretty-print.c: Likewise.
925         * gimple.c: Likewise.
926         * gimple.def: Likewise.
927         * gimple.h: Likewise.
928         * gimplify.c: Likewise.
929         * graphds.c: Likewise.
930         * graphite-clast-to-gimple.c: Likewise.
931         * gthr-nks.h: Likewise.
932         * gthr-posix.c: Likewise.
933         * gthr-posix.h: Likewise.
934         * gthr-posix95.h: Likewise.
935         * gthr-single.h: Likewise.
936         * gthr-tpf.h: Likewise.
937         * gthr-vxworks.h: Likewise.
938         * gthr.h: Likewise.
939         * haifa-sched.c: Likewise.
940         * hard-reg-set.h: Likewise.
941         * hooks.c: Likewise.
942         * hooks.h: Likewise.
943         * hosthooks.h: Likewise.
944         * hwint.h: Likewise.
945         * ifcvt.c: Likewise.
946         * incpath.c: Likewise.
947         * init-regs.c: Likewise.
948         * integrate.c: Likewise.
949         * ipa-cp.c: Likewise.
950         * ipa-inline.c: Likewise.
951         * ipa-prop.c: Likewise.
952         * ipa-pure-const.c: Likewise.
953         * ipa-reference.c: Likewise.
954         * ipa-struct-reorg.c: Likewise.
955         * ipa-struct-reorg.h: Likewise.
956         * ipa-type-escape.c: Likewise.
957         * ipa-type-escape.h: Likewise.
958         * ipa-utils.c: Likewise.
959         * ipa-utils.h: Likewise.
960         * ipa.c: Likewise.
961         * ira-build.c: Likewise.
962         * ira-color.c: Likewise.
963         * ira-conflicts.c: Likewise.
964         * ira-costs.c: Likewise.
965         * ira-emit.c: Likewise.
966         * ira-int.h: Likewise.
967         * ira-lives.c: Likewise.
968         * ira.c: Likewise.
969         * jump.c: Likewise.
970         * lambda-code.c: Likewise.
971         * lambda-mat.c: Likewise.
972         * lambda-trans.c: Likewise.
973         * lambda.h: Likewise.
974         * langhooks.c: Likewise.
975         * lcm.c: Likewise.
976         * libgcov.c: Likewise.
977         * lists.c: Likewise.
978         * loop-doloop.c: Likewise.
979         * loop-init.c: Likewise.
980         * loop-invariant.c: Likewise.
981         * loop-iv.c: Likewise.
982         * loop-unroll.c: Likewise.
983         * lower-subreg.c: Likewise.
984         * lto-cgraph.c: Likewise.
985         * lto-compress.c: Likewise.
986         * lto-opts.c: Likewise.
987         * lto-section-in.c: Likewise.
988         * lto-section-out.c: Likewise.
989         * lto-streamer-in.c: Likewise.
990         * lto-streamer-out.c: Likewise.
991         * lto-streamer.c: Likewise.
992         * lto-streamer.h: Likewise.
993         * lto-symtab.c: Likewise.
994         * lto-wpa-fixup.c: Likewise.
995         * matrix-reorg.c: Likewise.
996         * mcf.c: Likewise.
997         * mode-switching.c: Likewise.
998         * modulo-sched.c: Likewise.
999         * omega.c: Likewise.
1000         * omega.h: Likewise.
1001         * omp-low.c: Likewise.
1002         * optabs.c: Likewise.
1003         * optabs.h: Likewise.
1004         * opts-common.c: Likewise.
1005         * opts.c: Likewise.
1006         * params.def: Likewise.
1007         * params.h: Likewise.
1008         * passes.c: Likewise.
1009         * plugin.c: Likewise.
1010         * postreload-gcse.c: Likewise.
1011         * postreload.c: Likewise.
1012         * predict.c: Likewise.
1013         * predict.def: Likewise.
1014         * pretty-print.c: Likewise.
1015         * pretty-print.h: Likewise.
1016         * print-rtl.c: Likewise.
1017         * print-tree.c: Likewise.
1018         * profile.c: Likewise.
1019         * read-rtl.c: Likewise.
1020         * real.c: Likewise.
1021         * recog.c: Likewise.
1022         * reg-stack.c: Likewise.
1023         * regcprop.c: Likewise.
1024         * reginfo.c: Likewise.
1025         * regmove.c: Likewise.
1026         * regrename.c: Likewise.
1027         * regs.h: Likewise.
1028         * regstat.c: Likewise.
1029         * reload.c: Likewise.
1030         * reload1.c: Likewise.
1031         * resource.c: Likewise.
1032         * rtl.c: Likewise.
1033         * rtl.def: Likewise.
1034         * rtl.h: Likewise.
1035         * rtlanal.c: Likewise.
1036         * sbitmap.c: Likewise.
1037         * sched-deps.c: Likewise.
1038         * sched-ebb.c: Likewise.
1039         * sched-int.h: Likewise.
1040         * sched-rgn.c: Likewise.
1041         * sched-vis.c: Likewise.
1042         * sdbout.c: Likewise.
1043         * sel-sched-dump.c: Likewise.
1044         * sel-sched-dump.h: Likewise.
1045         * sel-sched-ir.c: Likewise.
1046         * sel-sched-ir.h: Likewise.
1047         * sel-sched.c: Likewise.
1048         * sel-sched.h: Likewise.
1049         * sese.c: Likewise.
1050         * sese.h: Likewise.
1051         * simplify-rtx.c: Likewise.
1052         * stack-ptr-mod.c: Likewise.
1053         * stmt.c: Likewise.
1054         * stor-layout.c: Likewise.
1055         * store-motion.c: Likewise.
1056         * stringpool.c: Likewise.
1057         * stub-objc.c: Likewise.
1058         * sync-builtins.def: Likewise.
1059         * target-def.h: Likewise.
1060         * target.h: Likewise.
1061         * targhooks.c: Likewise.
1062         * targhooks.h: Likewise.
1063         * timevar.c: Likewise.
1064         * tlink.c: Likewise.
1065         * toplev.c: Likewise.
1066         * toplev.h: Likewise.
1067         * tracer.c: Likewise.
1068         * tree-affine.c: Likewise.
1069         * tree-affine.h: Likewise.
1070         * tree-browser.def: Likewise.
1071         * tree-call-cdce.c: Likewise.
1072         * tree-cfg.c: Likewise.
1073         * tree-cfgcleanup.c: Likewise.
1074         * tree-chrec.c: Likewise.
1075         * tree-chrec.h: Likewise.
1076         * tree-complex.c: Likewise.
1077         * tree-data-ref.c: Likewise.
1078         * tree-data-ref.h: Likewise.
1079         * tree-dfa.c: Likewise.
1080         * tree-dump.c: Likewise.
1081         * tree-dump.h: Likewise.
1082         * tree-eh.c: Likewise.
1083         * tree-flow-inline.h: Likewise.
1084         * tree-flow.h: Likewise.
1085         * tree-if-conv.c: Likewise.
1086         * tree-inline.c: Likewise.
1087         * tree-into-ssa.c: Likewise.
1088         * tree-loop-distribution.c: Likewise.
1089         * tree-loop-linear.c: Likewise.
1090         * tree-mudflap.c: Likewise.
1091         * tree-nested.c: Likewise.
1092         * tree-nomudflap.c: Likewise.
1093         * tree-nrv.c: Likewise.
1094         * tree-object-size.c: Likewise.
1095         * tree-optimize.c: Likewise.
1096         * tree-outof-ssa.c: Likewise.
1097         * tree-parloops.c: Likewise.
1098         * tree-pass.h: Likewise.
1099         * tree-phinodes.c: Likewise.
1100         * tree-predcom.c: Likewise.
1101         * tree-pretty-print.c: Likewise.
1102         * tree-profile.c: Likewise.
1103         * tree-scalar-evolution.c: Likewise.
1104         * tree-ssa-address.c: Likewise.
1105         * tree-ssa-alias.c: Likewise.
1106         * tree-ssa-ccp.c: Likewise.
1107         * tree-ssa-coalesce.c: Likewise.
1108         * tree-ssa-copy.c: Likewise.
1109         * tree-ssa-copyrename.c: Likewise.
1110         * tree-ssa-dce.c: Likewise.
1111         * tree-ssa-dom.c: Likewise.
1112         * tree-ssa-dse.c: Likewise.
1113         * tree-ssa-forwprop.c: Likewise.
1114         * tree-ssa-ifcombine.c: Likewise.
1115         * tree-ssa-live.c: Likewise.
1116         * tree-ssa-live.h: Likewise.
1117         * tree-ssa-loop-ch.c: Likewise.
1118         * tree-ssa-loop-im.c: Likewise.
1119         * tree-ssa-loop-ivcanon.c: Likewise.
1120         * tree-ssa-loop-ivopts.c: Likewise.
1121         * tree-ssa-loop-manip.c: Likewise.
1122         * tree-ssa-loop-niter.c: Likewise.
1123         * tree-ssa-loop-prefetch.c: Likewise.
1124         * tree-ssa-loop-unswitch.c: Likewise.
1125         * tree-ssa-loop.c: Likewise.
1126         * tree-ssa-math-opts.c: Likewise.
1127         * tree-ssa-operands.c: Likewise.
1128         * tree-ssa-operands.h: Likewise.
1129         * tree-ssa-phiopt.c: Likewise.
1130         * tree-ssa-phiprop.c: Likewise.
1131         * tree-ssa-pre.c: Likewise.
1132         * tree-ssa-propagate.c: Likewise.
1133         * tree-ssa-reassoc.c: Likewise.
1134         * tree-ssa-sccvn.c: Likewise.
1135         * tree-ssa-sink.c: Likewise.
1136         * tree-ssa-structalias.c: Likewise.
1137         * tree-ssa-ter.c: Likewise.
1138         * tree-ssa-threadedge.c: Likewise.
1139         * tree-ssa-threadupdate.c: Likewise.
1140         * tree-ssa-uncprop.c: Likewise.
1141         * tree-ssa.c: Likewise.
1142         * tree-ssanames.c: Likewise.
1143         * tree-switch-conversion.c: Likewise.
1144         * tree-tailcall.c: Likewise.
1145         * tree-vect-data-refs.c: Likewise.
1146         * tree-vect-generic.c: Likewise.
1147         * tree-vect-loop-manip.c: Likewise.
1148         * tree-vect-loop.c: Likewise.
1149         * tree-vect-patterns.c: Likewise.
1150         * tree-vect-slp.c: Likewise.
1151         * tree-vect-stmts.c: Likewise.
1152         * tree-vectorizer.c: Likewise.
1153         * tree-vectorizer.h: Likewise.
1154         * tree-vrp.c: Likewise.
1155         * tree.c: Likewise.
1156         * tree.def: Likewise.
1157         * tree.h: Likewise.
1158         * treestruct.def: Likewise.
1159         * unwind-compat.c: Likewise.
1160         * unwind-dw2-fde-glibc.c: Likewise.
1161         * unwind-dw2.c: Likewise.
1162         * value-prof.c: Likewise.
1163         * value-prof.h: Likewise.
1164         * var-tracking.c: Likewise.
1165         * varasm.c: Likewise.
1166         * varpool.c: Likewise.
1167         * vec.c: Likewise.
1168         * vec.h: Likewise.
1169         * vmsdbgout.c: Likewise.
1170         * web.c: Likewise.
1171         * xcoffout.c: Likewise.
1172
1173 2009-11-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1174
1175         * pa.c (output_call): Only use sr4 for long interspace calls if
1176         call binds local and generating non PIC code.
1177         (attr_length_call): Adjust length calculation for above.
1178
1179 2009-11-25  Uros Bizjak  <ubizjak@gmail.com>
1180
1181         * config/i386/i386.md (plusminus_carry_mnemonic): New code attribute.
1182         (add<mode>3_carry): Change operand order of plus RTX.
1183         (*add<mode>3_carry): Ditto.
1184         (*addsi3_carry_zext): Ditto.
1185         (*add<dwi>3_doubleword): Update for changed operand order.
1186         (*negti2_1 splitter): Ditto.
1187         (*negdi2_1 splitter): Ditto.
1188         (<plusminus_insn><mode>3_carry): Macroize expander from
1189         {add,sub}<mode>3_carry patterns using plusminus code iterator.
1190         (*<plusminus_insn><mode>3_carry): Macroize insn from
1191         *{add,sub}<mode>3_carry patetrns using plusminus code iterator.
1192         (neg<mode>2): Macroize expander from neg{qi,hi,si,di,ti}2
1193         patterns using SDWIM mode iterator.
1194         (*neg<dwi>2_doubleword): New insn_and_split pattern.  Macroize
1195         pattern from *neg{di,ti}2_1 patterns and corresponding splitters
1196         using DWIH mode iterator.
1197         (*neg<mode>2_1): Macroize insn from neg{qi,hi,si,di}2_1 patterns
1198         using SWI mode iterator.
1199         (*neg<mode>2_cmpz): Ditto from neg{qi,hi,si,di}2_cmpz patterns.
1200         (one_cmpl<mode>2): Macroize expander from one_cmpl{qi,hi,si,di}2
1201         patterns using SWIM mode iterator.
1202         (*one_cmpl<mode>2_1): Macroize insn from one_cmpl{hi,si,di}2_1
1203         patterns using SWI248 mode iterator.
1204         (*one_cmpl<mode>2_2): Macroize insn from one_cmpl{qi,hi,si,di}2_2
1205         patterns using SWI mode iterator.
1206         (*one_cmpl<mode>2_2 splitter): Macroize splitter from
1207         one_cmpl{qi,hi,si,di}2_2 splitter patterns using SWI mode iterator.
1208
1209 2009-11-24  Michael Matz  <matz@suse.de>
1210
1211         * expr.c (set_storage_via_libcall): Fix build_call_expr call.
1212
1213 2009-11-24  David Binderman  <dcb314@hotmail.com>
1214
1215         * expr.c (store_field): Remove set but not used local variable
1216         width_mask.
1217         (expand_expr_real_2): Remove treeop2.
1218         * gcse.c (update_ld_motion_stores): Remove new_rtx.
1219         * haifa-sched.c (max_issue): Remove points.
1220         (sched_create_recovery_edges): Remove e.
1221         * ira-costs.c (setup_allocno_cover_class_and_costs): Remove mode.
1222
1223 2009-11-24  Nick Clifton  <nickc@redhat.com>
1224
1225         * config/v850/v850.c (function_arg): Fix handling of zero-length
1226         function arguments.
1227
1228 2009-11-24  Michael Matz  <matz@suse.de>
1229
1230         * tree.h (union tree_ann_d): Don't declare.
1231         (tree_base): Remove ann field.
1232         (struct var_ann_d): Declare forward.
1233         (tree_result_decl, tree_parm_decl, tree_var_decl): Add ann field.
1234         (DECL_VAR_ANN_PTR): New macro.
1235         * tree-dfa.c (create_var_ann): Rewrite in terms of above macro,
1236         accept only VAR, PARM or RESULT decls.
1237         (create_tree_common_ann): Remove.
1238         (remove_referenced_var): Use DECL_VAR_ANN_PTR.
1239         * tree-eh.c (lookup_expr_eh_lp): Remove.
1240         * tree-flow-inline.h (var_ann, get_var_ann): Rewrite in terms of
1241         DECL_VAR_ANN_PTR.
1242         (ann_type, tree_common_ann, get_tree_common_ann): Remove.
1243         * tree-flow.h (enum tree_ann_type): Remove.
1244         (struct tree_ann_common_d): Remove.
1245         (struct var_ann_d): Remove common field.
1246         (union tree_ann_d): Remove.
1247         (tree_ann_t, tree_ann_common_t): Remove typedefs.
1248         (tree_common_ann, get_tree_common_ann, ann_type,
1249         create_tree_common_ann, lookup_expr_eh_lp): Don't declare.
1250         * tree-ssa.c (delete_tree_ssa): Use DECL_VAR_ANN_PTR.
1251         * tree.c (copy_node_stat): Use DECL_VAR_ANN_PTR.
1252         * builtins.c (expand_builtin_memcpy): Use
1253         currently_expanding_gimple_stmt instead of tree annotation.
1254         (expand_builtin_memset_args): Ditto.
1255         * cfgexpand.c (currently_expanding_gimple_stmt): Add global variable.
1256         (expand_call_stmt): Don't set tree annotation.
1257         (expand_gimple_basic_block): Set currently_expanding_gimple_stmt.
1258         * expr.c (expand_expr_real): Don't call lookup_expr_eh_lp.
1259         * gimple.h (currently_expanding_gimple_stmt): Declare.
1260
1261 2009-11-24  Paolo Carlini  <paolo.carlini@oracle.com>
1262
1263         * dwarf2out.c (add_location_or_const_value_attribute): Remove
1264         useless NOTE_VAR_LOCATION_STATUS call.
1265         * cfgrtl.c (commit_one_edge_insertion): Remove useless loop, tidy.
1266
1267 2009-11-24  Rafael Avila de Espindola  <espindola@google.com>
1268
1269         * lto-wrapper.c (lto_wrapper_exit): Don't try to delete files if
1270         being called recursively.
1271
1272 2009-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
1273
1274         * Makefile.in (PLUGIN_HEADERS): Added files: cppdefault.h flags.h
1275         $(MD5_H) params.def params.h prefix.h tree-inline.h.
1276
1277 2009-11-24  Paul Brook  <paul@codesourcery.com>
1278
1279         * gcc/config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Fix comment
1280         typo.
1281
1282 2009-11-24  Julian Brown  <julian@codesourcery.com>
1283             Paul Brook  <paul@codesourcery.com>
1284
1285         * config/arm/arm.c (TARGET_DWARF_REGISTER_SPAN): Define.
1286         (arm_dwarf_register_span): New function.
1287         (arm_dbx_register_number): Add VFPv3 dwarf numbering.
1288
1289 2009-11-24  David Binderman  <dcb314@hotmail.com>
1290
1291         * cfgrtl.c (commit_one_edge_insertion): Remove set but not used
1292         local variable bb_note.
1293         * dominance.c (get_dominated_by): Likewise local var n.
1294         (output_file_names): Likewise local var idx.
1295         (add_location_or_const_value_attribute): Likewise local var status.
1296         * dwarf2out.c (gen_variable_die): Likewise local var field.
1297         * emit-rtl.c (no_line_numbers): Remove.
1298         (init_emit_once): Remove line_numbers parameter.
1299         * rtl.h (init_emit_once): Adjust prototype.
1300         * toplev.c (backend_init): Adjust init_emit_once call.
1301
1302 2009-11-24  Richard Guenther  <rguenther@suse.de>
1303
1304         PR tree-optimization/42142
1305         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
1306         Handle iv-dependent (non-)kills properly.
1307         (mark_aliased_reaching_defs_necessary): Pass the basic-block
1308         of the reference statement to mark_aliased_reaching_defs_necessary_1.
1309
1310 2009-11-24  Martin Jambor  <mjambor@suse.cz>
1311
1312         PR tree-optimization/42154
1313         * tree-sra.c (struct access): Added comments.
1314         (sra_modify_expr): Build references to the old aggregate with
1315         build_ref_for_offset instead of reusing access->expr.
1316         (load_assign_lhs_subreplacements): Likewise.
1317
1318 2009-11-24  Uros Bizjak  <ubizjak@gmail.com>
1319
1320         * config/i386/i386.md (add<mode>3_carry): Change insn pattern
1321         to expander.
1322         (sub<mode>3_carry): Ditto.
1323         (x86_mov<mode>cc_0_m1): Ditto.
1324         (*add<mode>3_carry): New insn pattern.  Use VOIDmode match_operator
1325         for ix86_carry_flag_operator operator predicate.
1326         (*sub<mode>3_carry): Ditto.
1327         (*x86_mov<mode>cc_0_m1): Ditto.
1328         (*addsi3_carry_zext): Use VOIDmode match_operator for
1329         ix86_carry_flag_operator operator predicate.
1330         (*subsi3_carry_zext): Ditto.
1331         (*x86_mov<mode>cc_0_m1_s): Ditto.
1332         (*x86_mov<mode>cc_0_m1_neg): Ditto.
1333         * config/i386/predocates.md (ix86_carry_flag_operator): Do not
1334         check operator sub-expressions for FLAGS_REG and const0_rtx.
1335         * config/i386/i386.c (*ix86_gen_sub3_carry): Update prototype.
1336         (ix86_expand_int_movcc): Update calls to gen_x86_mov{si,di}cc_0_m1.
1337         (ix86_expand_int_addcc): Update calls to
1338         gen_{add,sub}{qi,hi,si,di}3_carry.  Do not set mode of compare_op.
1339         (ix86_expand_strlensi_unroll_1): Update calls to ix86_gen_sub3_carry.
1340         Do not set mode of compare operation.
1341
1342 2009-11-23  Jan Hubicka  <jh@suse.cz>
1343
1344         PR middle-end/42151
1345         * ipa-inline.c (inline_transform): Avoid ICE when transform is called
1346         twice.
1347
1348 2009-11-23  Jan Hubicka  <jh@suse.cz>
1349
1350         * ipa-cp.c (ipcp_compute_node_scale): Work around completely
1351         wrong profile updates.
1352         * predict.c (counts_to_freqs): Be expected for ENTRY/EXIT block
1353         having largest frequency.
1354         * ira-live.c (ira_implicitly_set_insn_hard_regs): Silecne
1355         used uninitalized warning.
1356         * tree-optimize.c (execute_fixup_cfg): Rescale entry and exit block
1357         frequencies.
1358
1359 2009-11-23  Uros Bizjak  <ubizjak@gmail.com>
1360
1361         * config/alpha/alpha.md (*cmp_sadd_sidi): Use gen_lowpart instead
1362         of gen_rtx_REG to generate operand 5.
1363         (*cmp_ssub_sidi): Ditto.
1364
1365 2009-11-23  Richard Henderson  <rth@redhat.com>
1366
1367         * config/i386/i386.c (avx_vpermilp_parallel): Fix sign compare
1368         mismatch.
1369
1370 2009-11-23  Paul Brook  <paul@codesourcery.com>
1371
1372         * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Add special
1373         case for noreturn functions.
1374         (arm_compute_save_reg_mask): Remove special noreturn handling.
1375
1376 2009-11-23  Richard Guenther  <rguenther@suse.de>
1377
1378         * tree-dfa.c (get_ref_base_and_extent): Adjust maximum access
1379         size for DECL bases.
1380
1381 2009-11-22  Richard Henderson  <rth@redhat.com>
1382
1383         * i386.c (avx_vpermilp_parallel): New function.
1384         * i386-protos.h: Declare it.
1385         * predicates.md (avx_vpermilp_v8sf_operand, avx_vpermilp_v4df_operand,
1386         avx_vpermilp_v4sf_operand, avx_vpermilp_v2df_operand): New.
1387         * sse.md (AVXMODEFDP, AVXMODEFSP): New iterators.
1388         (ssescalarnum, ssedoublesizemode): Add AVX modes.
1389         (vpermilbits): Remove.
1390         (avx_vpermil<mode>): Change insns to expanders.
1391         (*avx_vpermil<mode>): New.  Use vec_select.
1392
1393 2009-11-22  Richard Earnshaw  <rearnsha@arm.com>
1394
1395         * opts.c (decode_options): Don't enable flag_schedule_insns
1396         when optimizing for size.
1397         * doc/invoke.texi: Document change.
1398
1399 2009-11-22  Uros Bizjak  <ubizjak@gmail.com>
1400
1401         PR target/42113
1402         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
1403         of scratch register to SImode.
1404         (*cmp_sadd_sidi): Ditto.
1405         (*cmp_ssub_si): Ditto.
1406         (*cmp_ssub_sidi): Ditto.
1407
1408 2009-11-21  Ian Lance Taylor  <iant@google.com>
1409
1410         * Makefile.in (HOST_LIBS): Move higher in file.
1411         (LINKER, LINKER_FLAGS): If ENABLE_BUILD_WITH_CXX, but $(HOST_LIBS)
1412         is not empty, set to $(CC) and $(CFLAGS).
1413
1414 2009-11-22  Martin Jambor  <mjambor@suse.cz>
1415
1416         * tree-cfg.c (verify_types_in_gimple_reference): Error out on
1417         V_C_E of an SSA_NAME or an invariant if lvalue is required.
1418         (verify_gimple_call): Verify LHS also with with
1419         verify_types_in_gimple_reference.
1420
1421 2009-11-21  Martin Jambor  <mjambor@suse.cz>
1422
1423         PR middle-end/42025
1424         * tree-sra.c (access_precludes_ipa_sra_p): New function.
1425         (splice_param_accesses): Check all accesses by calling
1426         access_precludes_ipa_sra_p.
1427         (sra_ipa_modify_expr): Rename argument erite to dont_convert and do
1428         not convert types if it is true.
1429         (sra_ipa_modify_assign): Convert types in case of mismatch.
1430
1431 2009-11-21  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
1432
1433         * config/sh/sh.md (cmpeqsi_t-1): Use logical_operand predicate
1434         for operand 1.
1435
1436 2009-11-21  Adam Nemet  <adambnemet@gmail.com>
1437
1438         * config/mips/mips-protos.h (mulsidi3_gen_fn): New typedef.
1439         (mips_mulsidi3_gen_fn): Declare new function.
1440         * config/mips/mips.c (mips_mulsidi3_gen_fn): New function.
1441         * config/mips/mips.md (<u>mulsidi3): Change condition to use
1442         mips_mulsidi3_gen_fn.  Use mips_mulsidi3_gen_fn to generate the insn.
1443         (<u>mulsidi3_64bit): Don't match for ISA_HAS_DMUL3.
1444         (mulsidi3_64bit_dmul): New define_insn.
1445
1446 2009-11-21  Ben Elliston  <bje@au.ibm.com>
1447
1448         * gengtype-lex.l: Enable noinput flex option.
1449         (YY_NO_INPUT): Remove define.
1450
1451 2009-11-21  Alexandre Oliva  <aoliva@redhat.com>
1452
1453         * tree-ssa.c (find_released_ssa_name): Handle NULL wi.
1454         (insert_debug_temp_for_var_def): Handle degenerate PHI nodes.
1455         (insert_debug_temps_for_defs): Handle PHI nodes.
1456         * tree-ssa-dom.c (degenerate_phi_result): Don't crash on released
1457         SSA names.
1458
1459 2009-11-21  Alexandre Oliva  <aoliva@redhat.com>
1460
1461         * tree-ssa-pre.c (remove_dead_inserted_code): Don't release_defs
1462         after remove_phi_node.
1463
1464 2009-11-21  Alexandre Oliva  <aoliva@redhat.com>
1465
1466         PR tree-optimization/42078
1467         * gimple.h (gimple_replace_lhs): New declaration.
1468         * gimple.c (gimple_replace_lhs): New function.
1469         * tree-ssa-math-opts.c (execute_cse_reciprocals): Call it before
1470         modifying the call.
1471
1472 2009-11-20  Sebastian Pop  <sebastian.pop@amd.com>
1473
1474         * config/i386/sse.md (*xop_pmacsdql_mem): Don't call reg_mentioned_p.
1475         (xop_mulv2div2di3_low): Same.
1476         (*xop_pmacsdqh_mem): Same.
1477
1478 2009-11-20  Richard Henderson  <rth@redhat.com>
1479
1480         * config/i386/i386-builtin-types.awk: New file.
1481         * config/i386/i386-builtin-types.def: New file.
1482         * config/i386/t-i386: Use them to build i386-builtin-types.inc.
1483         * config/i386/i386.c: Include it.
1484         (ix86_builtin_type_tab, ix86_get_builtin_type): New.
1485         (ix86_builtin_func_type_tab, ix86_get_builtin_func_type): New.
1486         (struct builtin_isa): Remove GTY marker.  Replace tree type with
1487         ix86_builtin_func_type; add set_and_not_built_p.
1488         (def_builtin): Change type parameter to tcode; use
1489         ix86_get_builtin_func_type; update all callers.  Accept zero mask
1490         to mean the builtin is unconditionally available.
1491         (ix86_add_new_builtins): Use set_and_not_built_p instead of type
1492         being set to NULL.
1493         (enum ix86_special_builtin_type, enum ix86_builtin_type): Remove.
1494         Update some users to rationalized enumeration codes from new include.
1495         (enum multi_arg_type): Remove.  Replace all enumeration values
1496         with defines to new ix86_builtin_func_type.
1497         (ix86_init_mmx_sse_builtins): Don't build any types here.  Defer
1498         all type resolution to def_builtin.
1499         (ix86_init_builtin_types): Split out from ...
1500         (ix86_init_builtins): ... here.  Use ix86_get_builtin_func_type.
1501
1502 2009-11-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
1503
1504         PR target/41787
1505         * config/rs6000/rs6000.c (struct machine_function): Revert
1506         2009-10-23 change to set VRSAVE to non-0 if we use VSX.
1507         (rs6000_expand_to_rtl_hook): Ditto.
1508         (rs6000_check_vector_mode): Ditto.
1509         (compute_vrsave_mask): Ditto.
1510
1511 2009-11-20  Paul Brook  <paul@codesourcery.com>
1512
1513         * doc/invoke.texi: Document ARM -mcpu=cortex-a5.
1514         * config/arm/arm-cores.def: Add cortex-a5.
1515         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a5.
1516         * config/arm/arm-tune.md: Regenerate.
1517
1518 2009-11-20 Olga Golovanevsky <olga@il.ibm.com>
1519
1520         PR middle-end/39960
1521         * ipa-struct-reorg.c (find_pos_in_stmt): New parameter.
1522         (ref_pos): New field in structure.
1523         (insert_new_var_in_stmt): New function.
1524
1525
1526 2009-11-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1527
1528         * config.gcc (alpha*-dec-osf[45]*): Set use_gcc_stdint.
1529         * config/alpha/osf.h (SIG_ATOMIC_TYPE): Define.
1530         (INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE): Define.
1531         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
1532         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1533         INT_LEAST64_TYPE): Define.
1534         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
1535         UINT_LEAST64_TYPE): Define.
1536         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
1537         INT_FAST64_TYPE): Define.
1538         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1539         UINT_FAST64_TYPE): Define.
1540         (INTPTR_TYPE, UINTPTR_TYPE): Define.
1541
1542 2009-11-20  Julian Brown  <julian@codesourcery.com>
1543
1544         * config/arm/arm.h (ASM_OUTPUT_REG_PUSH): Handle STATIC_CHAIN_REGNUM
1545         specially for Thumb-1.
1546         (ASM_OUTPUT_REG_POP): Likewise.
1547
1548 2009-11-19  Jason Merrill  <jason@redhat.com>
1549
1550         * dwarf2out.c (get_context_die): Take TYPE_MAIN_VARIANT.
1551
1552 2009-11-19  Basile Starynkevitch  <basile@starynkevitch.net>
1553             Rafael Avila de Espindola  <espindola@google.com>
1554
1555         * doc/plugins.texi (Plugin initialization): Added advices for
1556         retrieving the version of GCC at plugin compilation and loading times.
1557
1558 2009-11-19  Basile Starynkevitch  <basile@starynkevitch.net>
1559
1560         * plugin.c (FMT_FOR_PLUGIN_EVENT): added definition.
1561         (dump_active_plugins): output to file everything. Use
1562         internationalized dump & FMT_FOR_PLUGIN_EVENT.
1563
1564 2009-11-19  Richard Guenther  <rguenther@suse.de>
1565
1566         * gimple.c (canonicalize_cond_expr_cond): Strip conversions
1567         around truth-valued expressions.
1568         * tree.c (free_lang_data): Untangle check for LTO frontend.
1569
1570 2009-11-19  Jakub Jelinek  <jakub@redhat.com>
1571
1572         * tree.c (need_assembler_name_p): Use cgraph_get_node instead
1573         of cgraph_node_for_decl.
1574         * cgraph.h (cgraph_node_for_decl): Remove prototype.
1575         * cgraph.c (cgraph_node_for_decl): Remove.
1576         (cgraph_get_node): Just return NULL if !cgraph_hash.
1577
1578 2009-11-19  Paul Brook  <paul@codesourcery.com>
1579
1580         * config.gcc: Add new ARM --with-fpu options.
1581         * doc/invoke.texi: Docuent ARM -mfpu=fpv4-sp-d16.
1582         * config/arm/arm.c (all_fpus): Add fpv4-sp-d16.
1583
1584 2009-11-18  Richard Guenther  <rguenther@suse.de>
1585
1586         * gimple.h (union gimple_statement_d): Add gsmembase member.
1587         (gimple_vuse_op): Use gsmembase for access.
1588         (gimple_vdef_op): Likewise.
1589         (gimple_vuse): Likewise.
1590         (gimple_vdef): Likewise.
1591         (gimple_vuse_ptr): Likewise.
1592         (gimple_vdef_ptr): Likewise.
1593         (gimple_set_vuse): Likewise.
1594         (gimple_set_vdef): Likewise.
1595         * gsstruct.def (GSS_WITH_MEM_OPS_BASE): Add.
1596
1597 2009-11-18  Daniel Jacobowitz  <dan@codesourcery.com>
1598
1599         * doc/arm-neon-intrinsics.texi: Regenerated.
1600
1601 2009-11-18  Daniel Jacobowitz  <dan@codesourcery.com>
1602
1603         * config/arm/neon-docgen.ml (analyze_shape_elt): Handle alternatives.
1604
1605 2009-11-18  Paul Brook  <paul@codesourcery.com>
1606             Daniel Jacobowitz  <dan@codesourcery.com>
1607
1608         * config/arm/arm.c (FL_ARCH7EM, FL_FOR_ARCH7EM): Define.
1609         (arm_arch7em): New variable.
1610         (all_architectures): Add armv7e-m.
1611         (arm_override_options): Set arm_arch7em.
1612         * config/arm/arm.h (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD):
1613         Include arm_arch7em.
1614         (arm_arch7em): Declare.
1615
1616 2009-11-18  Richard Guenther  <rguenther@suse.de>
1617
1618         * lto-streamer-in.c (input_gimple_stmt): Assert that we find
1619         a valid field decl if checking is enabled.
1620
1621 2009-11-18  Martin Jambor  <mjambor@suse.cz>
1622
1623         * ipa-prop.h (struct ipa_param_call_note): New field lto_stmt_uid.
1624         (lto_ipa_fixup_call_notes): Declare.
1625         * ipa-prop.c (ipa_note_param_call): Store gimple uid.
1626         (update_call_notes_after_inlining): Copy call stmt uid to the new
1627         edge.
1628         (ipa_write_param_call_note): New function.
1629         (ipa_read_param_call_note): New function
1630         (ipa_write_node_info): Write also param call notes.  Removed a bogus
1631         comment, reformatted to fit 80 columns.
1632         (ipa_read_node_info): Read also param call notes. Removed a bogus
1633         comment.  Remove ipa_edge_args_vector growth.
1634         (lto_ipa_fixup_call_notes): New function.
1635         * ipa-cp.c (pass_ipa_cp): Add stmt_fixup hook.
1636         * ipa-inline.c (cgraph_mark_inline_edge): Perform indirect
1637         inlining regardless of flag_wpa.
1638         (cgraph_decide_inlining_of_small_functions): Likewise.
1639         (cgraph_decide_inlining): Likewise.
1640         (inline_read_summary): Likewise.
1641
1642 2009-11-18  Jan Hubicka  <jh@suse.cz>
1643
1644         * predict.c (compute_function_frequency): Export.
1645         * predict.h (compute_function_frequency): Declare.
1646         * tree-optimize.c (execute_fixup_cfg): Rescale frequencies.
1647
1648 2009-11-18  Martin Jambor  <mjambor@suse.cz>
1649
1650         * passes.c (ipa_write_summaries): Call renumber_gimple_stmt_uids
1651         on all nodes we write summaries for.
1652
1653 2009-11-18  Shujing Zhao  <pearly.zhao@oracle.com>
1654
1655         PR middle-end/22201
1656         * params.def (PARAM_INLINE_UNIT_GROWTH, PARAM_IPCP_UNIT_GROWTH)
1657         (PARAM_EARLY_INLINING_INSNS, PARAM_IRA_MAX_LOOPS_NUM)
1658         (PARAM_IRA_MAX_CONFLICT_TABLE_SIZE)
1659         (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP)
1660         (PARAM_MIN_INSN_TO_PREFETCH_RATIO)
1661         (PARAM_PREFETCH_MIN_INSN_TO_MEM_RATIO)
1662         (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Uppercase the first letter of the
1663         description string.
1664
1665 2009-11-18  Jakub Jelinek  <jakub@redhat.com>
1666
1667         * dwarf2out.c (loc_list_from_tree): Don't call rtl_for_decl_location
1668         unnecessarily.
1669         (rtl_for_decl_location): Try harder to get a rtl for TREE_STATIC vars.
1670
1671         PR c++/3187
1672         * cgraph.h (struct cgraph_node): Add same_body and same_body_alias
1673         fields.
1674         (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
1675         prototypes.
1676         * cgraphunit.c (cgraph_expand_function, cgraph_emit_thunks,
1677         cgraph_materialize_all_clones): Handle same_body aliases.
1678         * cgraph.c (cgraph_allocate_node): New function.
1679         (cgraph_create_node): Use it.
1680         (cgraph_node_for_decl, cgraph_node, cgraph_get_node,
1681         cgraph_node_for_asm, cgraph_remove_node): Handle same_body aliases.
1682         (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
1683         functions.
1684         * lto-cgraph.c (lto_output_node): Stream out same_body aliases.
1685         (input_node): Stream in same_body aliases.
1686         * lto-symtab.c (lto_cgraph_replace_node): Clear node pointers
1687         for same_body aliases.
1688         (lto_symtab_merge_cgraph_nodes_1): Handle same_body aliases.
1689
1690 2009-11-18  Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
1691
1692         PR other/39888
1693         * config/darwin.h: Use the extension stub libraries to access
1694         current libgcc_s features.
1695
1696 2009-11-18  Alexandre Oliva  <aoliva@redhat.com>
1697
1698         PR debug/41926
1699         * tree-vect-loop.c (vect_loop_kill_debug_uses): New.
1700         (vect_transform_loop): Call it.
1701
1702 2009-11-18  Alexandre Oliva  <aoliva@redhat.com>
1703
1704         * tree-ssa.c (insert_debug_temp_for_var_def): Fix handling of
1705         released SSA names.
1706
1707 2009-11-18  Alexandre Oliva  <aoliva@redhat.com>
1708
1709         PR debug/41888
1710         PR debug/41886
1711         * graphite-scop-detection.c (stmt_simple_for_scop_p): Debug stmts
1712         are ok.
1713         * graphite-sese-to-poly.c (graphite_stmt_p): Likewise.
1714         (try_generate_gimple_bb): Skip debug stmts when finding data refs.
1715         * sese.c (sese_build_liveouts_bb): Skip debug stmts.
1716         (sese_bad_liveouts_use): New.
1717         (sese_reset_debug_liveouts_bb): New.
1718         (sese_build_liveouts): Use it.
1719         (rename_variables_in_stmt): Reset debug stmts rather than creating
1720         new vars for them.
1721         (expand_scalar_variable_stmt): Likewise.
1722
1723 2009-11-18  Alexandre Oliva  <aoliva@redhat.com>
1724
1725         * df-scan.c (df_ref_create): Don't mark BB as dirty on debug insns.
1726         (df_ref_remove): Likewise.
1727
1728 2009-11-17  Jan Hubicka  <jh@suse.cz>
1729
1730         * ipa-struct-reorg.c (update_cgraph_with_malloc_call): Fix profile
1731         info.
1732
1733 2009-11-17  Eric Botcazou  <ebotcazou@adacore.com>
1734
1735         * toplev.c (process_options): Remove dead code.
1736         * doc/invoke.texi (-frename-registers): Mention -fpeel-loops.
1737
1738 2009-11-17  Rafael Avila de Espindola  <espindola@google.com>
1739
1740         * lto-symtab.c (lto_symtab_resolve_symbols): Always initialize the
1741         nodes.
1742
1743 2009-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1744
1745         PR tree-optimization/41857
1746         * tree-ssa-address.c (move_hint_to_base): Use void pointer to
1747         TYPE's address space instead of pointer to TYPE.
1748
1749 2009-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1750
1751         * reload.c (find_reloads_address): Fix typo.
1752
1753 2009-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1754
1755         * config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC
1756         registers in leaf functions if possible.
1757
1758 2009-11-17  Maxim Kuvyrkov  <maxim@codesourcery.com>
1759
1760         * config/m68k/m68k-devices.def: Add MCF5441x family.
1761
1762 2009-11-17  Jan Hubicka  <jh@suse.cz>
1763
1764         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not access
1765         removed node.
1766         * cgraphunit.c (verify_cgraph_node): Verify frequencies for match.
1767
1768 2009-11-17  Uros Bizjak  <ubizjak@gmail.com>
1769
1770         * config/i386/predicates.md (x86_64_szext_general_operand): Do not
1771         nest ior expressions.
1772         (x86_64_szext_nonmemory_operand): Ditto.
1773         (call_insn_operand): Ditto.
1774
1775 2009-11-16  Alexandre Oliva  <aoliva@redhat.com>
1776
1777         * stmt.c (expand_asm_stmt): Get locus from stmt.
1778
1779 2009-11-16  Alexandre Oliva  <aoliva@redhat.com>
1780
1781         * tree-cfg.c (gimple_redirect_edge_and_branch) <case GIMPLE_ASM>:
1782         Create the decl label for the new dest block on demand.  Require
1783         a fallthrough edge if no asm labels were redirected.
1784
1785 2009-11-16  Uros Bizjak  <ubizjak@gmail.com>
1786
1787         * config/i386/i386.md (cbranchsi4): Use nonimmediate_operand for
1788         operand 1 predicate.
1789         (cstoresi4): Ditto for operand 2.
1790         (cbranch<mode>4): Macroize expander from cbranch{qi,hi,si,di,ti}4
1791         patterns using SDWIM mode iterator.
1792         (cstore<mode>4): Macroize expander from cstore{qi,hi,si,di}4 patterns
1793         using SWIM mode iterator.
1794         (cmpdi_1): Rename from cmpdi_1_rex64.
1795         (cmp<mode>_1): Macroize expander from cmp{si,di}_1 patterns using
1796         SWI48 mode iterator.
1797         (*cmp<mode>_1): Macroize insn from *cmp{qi,hi,si,di}_1_insn patterns
1798         using SWI mode iterator.
1799         (*cmp<mode>_ccno_1): Ditto from *cmp{qi,hi,si,di}_ccno_1.
1800         (*cmp<mode>_minus_1): Ditto from *cmp{qi,hi,si,di}_minus_1.
1801         (*cmpqi_ext_3_insn): Make private.
1802         (*cmpqi_ext_3_insn_rex64): Make private.
1803         (cmpstrnsi): Update for renamed cmpdi_1_rex64.
1804         * config/i386/predicates.md (cmpsi_operand): Remove.
1805
1806 2009-11-16  Paul Brook  <paul@codesourcery.com>
1807
1808         * doc/invoke.texi: Document ARM VFPv4 based FPUs.
1809         * config/arm/arm.c (all_fpus): Add VFPv4 entries.
1810
1811 2009-11-14  Jan Hubicka  <jh@suse.cz>
1812
1813         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use proper
1814         ENTRY_BLOCK_PTR.
1815         * cgraph.c (cgraph_clone_edge): Avoid freq_scale 0 to completely
1816         zero out all callees.
1817         * cgraphunit.c (verify_cgraph_node): Verify cgraph nodes for
1818         frequency and count match.
1819         * ipa-inline.c (update_noncloned_frequencies): New function.
1820         (cgraph_clone_inlined_nodes): Use it.
1821         * tree-inline.c (copy_bb): Fix frequency scaling; output
1822         diagnostic on frequency mismatches to dump file.
1823         (initialize_cfun): Do not scale frequency; fix count scaling;
1824         initialize entry and exit block frequencies; copy profile info.
1825         (copy_cfg_body): Use frequency_scale as argument; fix count scaling.
1826         (copy_body): Use frequency_scale as argument.
1827         (expand_call_inline): Compute frequency scale and output diagnostic
1828         to dump file.
1829         (delete_unreachable_blocks_update_callgrah): Remove checking that
1830         has to be done after edge redirection.
1831         (tree_function_versioning): Update initialize_cfun and copy_body call.
1832
1833 2009-11-14  Jan Hubicka  <jh@suse.cz>
1834
1835         * cgraph.c (cgraph_release_function_body): Update use of
1836         ipa_transforms_to_apply.
1837         (cgraph_remove_node): Remove ipa_transforms_to_apply.
1838         * cgraph.h (struct cgraph_node): Add ipa_transforms_to_apply.
1839         * cgraphunit.c (save_inline_function_body): Clear ipa_transforms for
1840         copied body.
1841         (cgraph_materialize_clone): Remove original if dead.
1842         * lto-streamer-in.c (lto_read_body): Remove FIXME and
1843         ipa_transforms_to_apply hack.
1844         * function.h (struct function): Add ipa_transforms_to_apply.
1845         * ipa.c (cgraph_remove_unreachable_nodes): Handle dead clone originals.
1846         * tree-inline.c (copy_bb): Update sanity check.
1847         (initialize_cfun): Do not copy ipa_transforms_to_apply.
1848         (expand_call_inline): remove dead clone originals.
1849         (tree_function_versioning): Merge transformation queues.
1850         * passes.c (add_ipa_transform_pass): Remove.
1851         (execute_one_ipa_transform_pass): Update ipa_transforms_to_apply
1852         tracking.
1853         (execute_all_ipa_transforms): Update.
1854         (execute_one_pass): Update.
1855
1856 2009-11-14  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
1857
1858         PR target/21078, 21080
1859         * config/avr/avr.c (avr_return_addr_rtx): New function for
1860         builtin_return_address.
1861         (expand_prologue): Calculate stack usage.
1862         (avr_asm_function_end_prologue): Output stack size and offset label.
1863         * config/avr/avr.h (RETURN_ADDR_RTX): Replace.
1864         (machine_function): Add stack_usage.
1865         * config/avr/avr-protos.h (avr_return_addr_rtx): New function.
1866
1867 2009-11-14  Anatoly Sokolov  <aesok@post.ru>
1868
1869         * config/iq2000/iq2000.c (iq2000_function_value): Make static, add
1870         new 'outgoing' argument.
1871         (iq2000_libcall_value, iq2000_function_value_regno_p): New functions.
1872         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
1873         * config/iq2000/iq2000.h (FUNCTION_VALUE_REGNO_P): Redefine, use
1874         iq2000_function_value_regno_p.
1875         (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
1876         * config/iq2000/iq2000-protos.h (iq2000_function_value_regno_p):
1877         Declare.
1878
1879 2009-11-14  Richard Earnshaw  <rearnsha@arm.com>
1880
1881         PR target/42031
1882         * arm.md (adddi_sesidi_di): Place tied contraint first.
1883         (adddi_zesidi_di, subdi_di_zesidi, subdi_di_sesidi): Likewise
1884         (subdi_zesidi_di, subdi_sesidi_di): Likewise.
1885         (mulsi3_compare0, mulsi_compare0_scratch): Likewise.
1886         (mulsi3addsi, mulsi3addsi_compare0): Likewise.
1887         (mulsi3addsi_compare0_scratch, smulsi3_highpart_nov6): Likewise.
1888         (umulsi3_highpart_nov6, anddi_zesidi_di, anddi_sesdi_di): Likewise.
1889         (anddi_notdi_di, iordi_sesidi_di, xordi_sesidi_di): Likewise.
1890         (andsi_iorsi3_notsi, arm_ashldi3_1bit, arm_ashrdi3_1_bit): Likewise.
1891         (arm_lshrdi3_1bit, one_cmpldi2): Likewise.
1892
1893 2009-11-14  Uros Bizjak  <ubizjak@gmail.com>
1894
1895         * config/i386/predicates.md (call_register_no_elim_operand):
1896         New predicate.  Reject stack register as valid call operand
1897         for 32bit targets.
1898         (call_insn_operand): Use call_register_no_elim_operand.
1899
1900 2009-11-13  Richard Henderson  <rth@redhat.com>
1901
1902         * function.c (stack_protect_prologue): Don't bypass expand_expr
1903         for stack_protect_guard and guard_decl.
1904         (stack_protect_epilogue): Likewise.
1905
1906 2009-11-13  Jan Hubicka  <jh@suse.cz>
1907
1908         * ipa.c (function_and_variable_visibility): Clear COMDAT on functions
1909         when to PUBLIC is set.
1910
1911 2009-11-13  Jakub Jelinek  <jakub@redhat.com>
1912
1913         PR middle-end/42029
1914         * gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on
1915         tmp_load if needed.
1916
1917 2009-11-13  Uros Bizjak  <ubizjak@gmail.com>
1918
1919         PR target/41900
1920         * config/i386/i386.md (*call_pop_1, *call_1, *call_value_pop_1,
1921         *call_value_1): Use "lsm" as operand 1 constraint.
1922         * config/i386/predicates.md (call_insn_operand): Depend on
1923         index_register_operand to avoid %esp register.
1924
1925 2009-11-13  Uros Bizjak  <ubizjak@gmail.com>
1926
1927         Revert:
1928         2009-11-03  Uros Bizjak  <ubizjak@gmail.com>
1929
1930         PR target/41900
1931         * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
1932         (TARGET_CALL_ESP): New define.
1933         * config/i386/i386.c (initial_ix86_tune_features): Initialize
1934         X86_ARCH_CALL_ESP.
1935         * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
1936         *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
1937         *call_1, *call_value_pop_1 and *call_value_1.  Depend on
1938         TARGET_CALL_ESP.
1939         (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
1940         New patterns, use "lsm" as operand 1 constraint.
1941         * config/i386/predicates.md (call_insn_operand): Depend on
1942         index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
1943
1944 2009-11-13  Jason Merrill  <jason@redhat.com>
1945
1946         PR debug/26965
1947         * dwarf2out.c (gen_variable_die): Don't worry about DECL_COMDAT.
1948         Don't emit a second declaration at any scope.
1949
1950 2009-11-13  Andrey Belevantsev  <abel@ispras.ru>
1951
1952         PR rtl-optimization/41697
1953         * sel-sched-ir.c (fallthru_bb_of_jump): Bail out when a block with
1954         a conditional jump has a single successor.
1955
1956 2009-11-13  Andrey Belevantsev  <abel@ispras.ru>
1957
1958         * sched-deps.c (init_deps): New parameter lazy_reg_last.  Don't
1959         allocate reg_last when in case lazy_reg_last is true.
1960         (init_deps_reg_last): New.
1961         (free_deps): When max_reg is 0, this context is already freed.
1962         * sched-int.h (init_deps_reg_last): Export.
1963         (init_deps): Update prototype.
1964         * sched-ebb.c (schedule_ebb): Update the call to init_deps.
1965         * sched-rgn.c (sched_rgn_compute_dependencies): Likewise.
1966         * ddg.c (build_intra_loop_deps): Likewise.
1967         * sel-sched-ir.c (copy_deps_context, create_deps_context,
1968         reset_deps_context, deps_init_id): Likewise.
1969         (init_first_time_insn_data): Lazy allocate INSN_DEPS_CONTEXT.
1970         (free_data_for_scheduled_insn): New, break down from ...
1971         (free_first_time_insn_data): ... here.
1972         (has_dependence_p): Allocate reg_last now, when it is needed.
1973         (extend_insn_data): When maximal LUID is big enough, allocate
1974         per-insn data in smaller chunks.
1975         * sel-sched-ir.h (free_data_for_scheduled_insn): Export.
1976         * sel-sched.c (update_seqnos_and_stage): Free INSN_DEPS_CONTEXT
1977         in scheduled insn.
1978
1979 2009-11-13  Uros Bizjak  <ubizjak@gmail.com>
1980
1981         * config/i386/i386.md (call_value): Fix comment.
1982         (sibcall_value): Ditto.
1983
1984 2009-11-13  Eric Botcazou  <ebotcazou@adacore.com>
1985
1986         * config/i386/linux-unwind.h (x86_frob_update_context): New function.
1987         (MD_FROB_UPDATE_CONTEXT): Define.
1988
1989 2009-11-12  Eric Botcazou  <ebotcazou@adacore.com>
1990             Laurent GUERBY  <laurent@guerby.net>
1991
1992         * config/sparc/linux-unwind.h (sparc64_fallback_frame_state): Tidy.
1993         Do not schedule an %sp restore.  Compensate for RETURN_ADDR_OFFSET.
1994         (sparc_fallback_frame_state): Tidy.  Compensate for RETURN_ADDR_OFFSET.
1995
1996 2009-11-12  Jan Hubicka  <jh@suse.cz>
1997
1998         * ipa.c (function_and_variable_visibility): Fix my accidentail commit
1999         and clear DECL_COMMON on localized declarations.
2000
2001 2009-11-12  Bernd Schmidt  <bernd.schmidt@analog.com>
2002
2003         PR rtl-opt/38582
2004         * regrename.c (struct du_head): New structure; some elements moved
2005         from...
2006         (struct du_chain): ... this one.
2007         (open_chains, closed_chains): Now of type struct du_head *.
2008         (do_replace): Accept du_head argument, not du_chain.  All callers
2009         changed.  Modified code to match new data structures.
2010         (build_def_use): Return a list of du_head structures.  Modified code
2011         to match new data structures.
2012         (dump_def_use_chain): Accept du_head argument, not du_chain.  All
2013         callers changed.  Modified code to match new data structures.
2014         (merge_overlapping_regs): Accept du_head argument, not du_chain.  All
2015         callers changed.  Modified code to match new data structures.
2016         (scan_rtx_reg): Change type of this_regno and this_nregs to unsigned.
2017         Allocate a du_head structure as well as a du_chain when creating a
2018         new chain.  Modified other code to match new data structures.
2019
2020 2009-11-12  Jan Hubicka  <jh@suse.cz>
2021
2022         * cgraph.h (varpool_node_name): Declare.
2023         * cgraphunit.c (process_function_and_variable_attributes): Set
2024         force_output flag on used variables.
2025         * ipa.c (function_and_variable_visibility): Dump externally visible
2026         and needed variables.
2027         * varpool.c (varpool_node_name): Export.
2028         (decide_is_variable_needed): Check COMDAT for externally visible vars;
2029         ignore needed flag.
2030
2031 2009-11-12  Uros Bizjak  <ubizjak@gmail.com>
2032
2033         PR middle-end/41930
2034         * simplify-rtx.c (simplify_replace_fn_rtx) <case 'e'>: Skip
2035         processing if XEXP (x, i) is NULL.
2036
2037 2009-11-12  Jan Hubicka  <jh@suse.cz>
2038
2039         * ipa.c (function_and_variable_visibility): Verify that WEAK || COMMON
2040         imply PUBLIC || EXTERNAL.
2041
2042 2009-11-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
2043
2044         PR middle-end/41440
2045         * cfgexpand.c (expand_gimple_basic_block): Append NOP to a fallthru,
2046         single successor block, ending with jump created by RTL expander.
2047
2048 2009-11-11  Jan Hubicka  <jh@suse.cz>
2049
2050         PR middle-end/41729
2051         * ipa.c (function_and_variable_visibility): Do not privatize COMDAT
2052         and WEAK variables at -fwhole-program.
2053
2054         PR middle-end/41735
2055         * ipa.c (whole_program_function_and_variable_visility): COMDAT
2056         functions/variables are not needed even if they are externally visible.
2057
2058 2009-11-11  Jan Hubicka  <jh@suse.cz>
2059
2060         (patch by Richard Guenther)
2061         * lto-streamer-out.c (output_function): Output head of argument list
2062         earlier.
2063         * lto-streamer-in.c (input_function): Re-map arguments into merged
2064         declaration.
2065
2066 2009-11-11  Jan Hubicka  <jh@suse.cz>
2067
2068         * lto-cgraph.c: Include gcov-io.h
2069         (output_profile_summary): New function.
2070         (output_cgraph): Use it.
2071         (input_profile_summary): New function.
2072         (input_cgraph): Use it.
2073         * coverage.c (build_ctr_info_value): Use varpool; initalize
2074         DECL_ASSEMBLER_NAME.
2075         (create_coverage): Likewise.
2076         * tree-profile.c (tree_init_ic_make_global_vars): Likewise.
2077         (tree_init_edge_profiler): Likewise.
2078         * Makefile.in (lto-cgraph.o): Add dependency on gcov-io.h.
2079
2080 2009-11-11  Kai Tietz  <kai.tietz@onevision.com>
2081
2082         * config/i386/cygming.h (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
2083         * c-pragma.c (def_pragma_macro_value): Likewise.
2084         (def_pragma_macro): Likewise.
2085         (pushed_macro_table): Likewise.
2086         (HANDLE_PRAGMA_PUSH_POP_MACRO): Remove guarded code.
2087         * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
2088
2089 2009-11-11  Basile Starynkevitch  <basile@starynkevitch.net>
2090
2091         * doc/plugins.texi (Registering custom attributes): section
2092         renamed as (Registering custom attributes or pragmas).
2093         Mentions custom attributes & pragmas, and c_register_pragma, with
2094         a small example.
2095         * doc/cpp.texi (Pragmas): Mentions that plugins can provide their
2096         pragmas.
2097         * doc/extend.texi (Function Attributes): Mentions that plugin can
2098         provide their attributes.
2099
2100 2009-11-11  Jon Beniston  <jon@beniston.com>
2101
2102         * config.gcc: Add lm32 elf and uclinux targets.
2103         * config/lm32: New directory.
2104         * config/lm32/lm32.c: New file.
2105         * config/lm32/lm32.h: New file.
2106         * config/lm32/lm32.md: New file.
2107         * config/lm32/lm32.opt: New file.
2108         * config/lm32/lm32-protos.h: New file.
2109         * config/lm32/constraints.md: New file.
2110         * config/lm32/predicates.md: New file.
2111         * config/lm32/sfp-machine.h: New file.
2112         * config/lm32/t-fprules-softfp: New file.
2113         * config/lm32/uclinux-elf.h: New file.
2114         * doc/invoke.texi: Document lm32 options.
2115         * doc/contrib.texi: Document lm32 porter.
2116         * doc/install.texi: Document lm32 targets.
2117
2118 2009-11-11  Martin Jambor  <mjambor@suse.cz>
2119
2120         PR lto/41932
2121         * ipa-prop.c (ipa_update_after_lto_read): Call
2122         ipa_check_create_node_params and ipa_check_create_edge_args.  Also
2123         call ipa_initialize_node_params instead of ipa_populate_param_decls.
2124
2125 2009-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
2126
2127         * config/arm/arm.c (neon_vdup_constant, neon_make_constant): New.
2128         (neon_expand_vector_init): Use them.  Also handle non-constant
2129         vectors with identical elements and vectors with only one
2130         non-constant element.
2131         (arm_print_operand): Handle 'y' modifier.
2132         * config/arm/arm-protos.h (neon_make_constant): Declare.
2133         * config/arm/neon.md (neon_vdup_n<mode>): Split into two
2134         patterns.  Use VX instead of VDQW for the first one.  Allow
2135         a VFP alternative and V32 modes for the second one.
2136         * config/arm/neon.ml (shape_elt): Add Alternatives.
2137         (ops): Use Alternatives for vdup lane instructions.
2138         * config/arm/neon-testgen.ml (analyze_shape): Handle Alternatives.
2139         * config/arm/vec-common.md (mov<mode>): Use neon_make_constant.
2140
2141 2009-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
2142
2143         * config/arm/neon.md (*neon_mov<mode>): Reject two non-register
2144         operands.
2145         (movti, mov<mode>): Call force_reg on one operand if required.
2146         * config/arm/vec-common.md (mov<mode>): Likewise.
2147
2148 2009-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
2149
2150         * config/arm/arm.c (arm_override_options): Enable scheduling for
2151         Thumb-2.
2152
2153 2009-11-10  Eric Botcazou  <ebotcazou@adacore.com>
2154
2155         PR target/10127
2156         PR ada/20548
2157         * expr.h (anti_adjust_stack_and_probe): Declare.
2158         * explow.c (anti_adjust_stack_and_probe): Make global, add ADJUST_BACK
2159         parameter and rewrite head comment.
2160         (allocate_dynamic_stack_space): Adjust call to above function.
2161         * function.c (expand_function_end): Handle STACK_CHECK_MOVING_SP.
2162
2163         * tree.h (dwarf2out_args_size): Delete.
2164         * dwarf2out.c (dwarf2out_args_size): Make static and move around.
2165         (dwarf2out_args_size_adjust): Delete prototype and move around.
2166         (dwarf2out_frame_debug_expr): Do not record arg size adjustments for
2167         ACCUMULATE_OUTGOING_ARGS targets.
2168
2169 2009-11-10  Eric Botcazou  <ebotcazou@adacore.com>
2170
2171         * config/sparc/sparc.c (print_operand) <')'>: Test for a non-null
2172         DECL_SIZE of DECL_RESULT before evaluating it.
2173
2174 2009-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2175
2176         PR tree-optimization/41987
2177         * fold-const.c (const_binop): Avoid using fold_buildN().
2178
2179 2009-11-10  Martin Jambor  <mjambor@suse.cz>
2180
2181         * tree-pass.h (struct ipa_opt_pass_d): Added stmt_fixup field.
2182         (execute_all_ipa_stmt_fixups): Declare.
2183         * ipa-cp.c (pass_ipa_cp): Added stmt_fixup value.
2184         * ipa-inline.c (pass_ipa_inline): Likewise.
2185         * ipa-pure-const.c (pass_ipa_pure_cons): Likewise.
2186         * ipa-reference.c (pass_ipa_reference): Likewise.
2187         * ipa.c (pass_ipa_whole_program_visibility): Likewise.
2188         * lto-streamer-out.c (pass_ipa_lto_gimple_out): Likewise.
2189         (pass_ipa_lto_finish_out): Likewise.
2190         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Likewise.
2191         * passes.c (execute_ipa_stmt_fixups): New function.
2192         (execute_all_ipa_stmt_fixups): New function.
2193         * lto-streamer-in.c (input_function): Call execute_all_ipa_stmt_fixups.
2194
2195 2009-11-10  Eric Botcazou  <ebotcazou@adacore.com>
2196
2197         PR ada/20548
2198         * explow.c (probe_stack_range): Fix typo.
2199         * config/sparc/sparc.md (probe_stack): New expander.
2200
2201 2009-11-09  Dave Korn  <dave.korn.cygwin@gmail.com>
2202
2203         * config/i386/cygwin.h (LINK_SPEC): Add -tsaware flag if !mno-cygwin.
2204
2205 2009-11-09  Jason Merrill  <jason@redhat.com>
2206
2207         * gdbinit.in (pgq): New function for printing gimple sequence.
2208
2209 2009-11-09  Paul Brook  <paul@codesourcery.com>
2210             Daniel Jacobowitz  <dan@codesourcery.com>
2211             Sandra Loosemore  <sandra@codesourcery.com>
2212
2213         * doc/extend.texi (Half-Precision): Update wording to reflect
2214         that there are now multiple -mfpu options that enable fp16
2215         hardware support.
2216         * doc/invoke.texi: Update list of ARM -mfpu= options.
2217         * config.gcc: Update ARM --with-fpu option list.
2218         * config/arm/arm.c (all_fpus): Add vfpv3-fp16, vfpv3-d16-fp16,
2219         vfpv3xd and vfpv3xd-fp16.
2220         (use_vfp_abi): New function.
2221         (aapcs_vfp_is_call_or_return_candidate): Avoid double precision regs
2222         when undesirable.
2223         (aapcs_vfp_is_return_candidate, aapcs_vfp_is_call_candidate,
2224         aapcs_vfp_allocate_return_reg): Use use_vfp_abi.
2225         (arm_rtx_costs_1, arm_size_rtx_costs, arm_fastmul_rtx_costs,
2226         arm_9e_rtx_costs): Only expect double-precision operations if the FPU
2227         provides them.
2228         (coproc_secondary_reload_class): Reload HFmode via GENERAL_REGS if no
2229         NEON.
2230         (arm_print_operand): Handle 'p' modifier.
2231         (arm_hard_regno_mode_ok): : Allow HFmode in VFP registers if
2232         TARGET_FP16.
2233         * config/arm/arm.h (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Define.
2234         (TARGET_FP16): Define.
2235         * config/arm/vfp.md: Disable double-precision patterns if the FPU
2236         does not provide them.
2237         (arm_movdi_vfp, thumb2_movdi_vfp): Use fcpys to move
2238         double-precision values on a single-precision FPU.
2239         (movdf_vfp, thumb2_movdf_vfp): Likewise.  Use "Dy" for
2240         double-precision constants.
2241         (movhf_vfp_neon): New pattern (was movhf_vfp).
2242         (movhf_vfp): Remove NEON instructions.
2243         * config/arm/constraints.md: Add new "Dy" constraint for
2244         double-precision constants.  Update description of "Dv".
2245         * config/arm/arm.md: Disable double-precision patterns if the FPU
2246         does not provide them
2247
2248 2009-11-09  Jakub Jelinek  <jakub@redhat.com>
2249
2250         * config/i386/i386.c (print_operand) <case 'D'>: Fix formatting.
2251         (print_operand) <case 'Y'>: Likewise.  Fix a pasto in operand lossage
2252         diagnostics.
2253
2254 2009-11-08  H.J. Lu  <hongjiu.lu@intel.com>
2255
2256         * collect2.c (main): Search PLUGIN_LD for plugin linker.
2257
2258         * configure.ac (--with-plugin-ld): New.  Default to ld.
2259         * configure: Regenerated.
2260         * config.in: Likewise.
2261
2262         * exec-tool.in (ORIGINAL_PLUGIN_LD_FOR_TARGET): New.
2263         (collect-ld): Use ORIGINAL_PLUGIN_LD_FOR_TARGET for -plugin.
2264
2265 2009-11-08  Jonathan Gray  <jsg@openbsd.org>
2266
2267         * config/openbsd-stdint.h: Change to reflect what
2268         c_common_nodes_and_builtins expects.
2269
2270 2009-11-08  Paolo Carlini  <paolo.carlini@oracle.com>
2271
2272         * builtins.c (apply_args_reg_offset): Remove commented out delaration.
2273
2274 2009-11-08  Jakub Jelinek  <jakub@redhat.com>
2275
2276         PR target/41985
2277         * config/i386/i386.c (get_some_local_dynamic_name): Don't assert
2278         function contains at least one local dynamic name.
2279         (print_operand) <case '&'>: Instead output operand lossage diagnostics
2280         here if that happens.
2281
2282 2009-11-08  Zbigniew Chamski  <zbigniew.chamski@gmail.com>
2283             Joern Rennecke  <amylaar@spamcop.net>
2284
2285         * cfgrtl.c (pass_free_cfg): Add pass name.
2286         * cgraphbuild.c (pass_build_cgraph_edges): Likewise.
2287         (pass_rebuild_cgraph_edges, pass_remove_cgraph_callee_edges): Likewise.
2288         * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Change pass name.
2289         * df-core.c (pass_df_initialize_no_opt): Likewise.
2290         * except.c (pass_rtl_eh): Likewise.
2291         * function.c (pass_init_function, pass_leaf_regs): Likewise.
2292         * gcse.c (pass_rtl_pre): Change pass name.
2293         * passes.c (pass_postreload): Add pass name.
2294         (make_pass_instance): Don't use duplicate-tracking logic for
2295         names starting with '*'.
2296         (next_pass_1): Assert that pass has a name.
2297         (register_one_dump_file): If there is an space in the name,
2298         skip past it.
2299         * predict.c (pass_strip_predict_hints): Add pass name.
2300         * reg-stack.c (pass_stack_regs): Likewise.
2301         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
2302         * tree-cfg.c (pass_warn_function_return,
2303         pass_warn_function_noreturn): Add pass name.
2304         * tree-dfa.c (pass_referenced_vars): Likewise.
2305         * tree-optimize.c (pass_cleanup_cfg_post_optimizing):
2306         Fix whitespace before comment.
2307         (pass_fixup_cfg): Add pass name, fix whitespace before comment.
2308         (pass_init_datastructures): Add pass name.
2309         * tree-ssa-loop.c (pass_record_bounds): Likewise.
2310         * tree-ssa.c (pass_early_warn_uninitialized,
2311         pass_late_warn_uninitialized): Likewise.
2312         * tree.c (pass_ipa_free_lang_data): Likewise.
2313         * doc/passes.texi (pass manager): Document how to disambiguate
2314         pass names.
2315
2316 2009-11-08  Paolo Bonzini  <bonzini@gnu.org>
2317
2318         * df-problems.c: Fix documentation for forward simulation of LR.
2319         (df_simulate_one_insn_forwards): Use df_simulate_find_defs.
2320         (df_simulate_finalize_forwards): Remove.
2321         * df.h (df_simulate_finalize_forwards): Remove.
2322
2323 2009-11-08  Richard Guenther  <rguenther@suse.de>
2324
2325         * tree-ssa-structalias.c (build_succ_graph): Properly make
2326         variables escape if they are stored to anything.
2327
2328 2009-11-08  Richard Guenther  <rguenther@suse.de>
2329
2330         PR rtl-optimization/41928
2331         * loop-invariant.c (free_loop_data): If we didn't allocate
2332         loop data do not try to free it.
2333
2334 2009-11-07  Jason Merrill  <jason@redhat.com>
2335
2336         * tree.c (reconstruct_complex_type): Preserve attributes.
2337
2338 2009-11-07  Richard Guenther  <rguenther@suse.de>
2339
2340         * tree-ssa-structalias.c (build_succ_graph): Feed stores
2341         to anything only to variables that can take pointers.
2342         (get_constraint_for_ssa_var): Properly exclude full
2343         variables from expanding.
2344         (first_vi_for_offset): Avoid overflow in arithmetic.
2345         (first_or_preceding_vi_for_offset): Likewise.
2346         (count_num_arguments): Fix implementation.
2347         (gate_ipa_pta): Do not run when not optimizing.
2348
2349 2009-11-07  David Binderman <dcb314@hotmail.com>
2350
2351         * builtins.c (apply_args_size, expand_builtin_mathfn, expand_powi,
2352         expand_builtin_expect, maybe_emit_sprintf_chk_warning): Remove some
2353         set but not used variables.
2354         (apply_args_reg_offset): Comment out as unused.
2355         * calls.c (flags_from_decl_or_type): Likewise.
2356         * genautomata.c (check_regexp_units_distribution): Likewise.
2357
2358 2009-11-07  Uros Bizjak  <ubizjak@gmail.com>
2359
2360         * config/i386/sse.md (xop_pmacsww, xop_pmacssww, xop_pmacsdd,
2361         xop_pmacssdd, xop_pmacssdql, xop_pmacssdqh, xop_pmacsdql,
2362         *xop_pmacsdql_mem, xop_pmacsdqh, *xop_pmacsdqh_mem, xop_pmacsswd,
2363         xop_pmacswd, xop_pmadcsswd, xop_pmadcswd, xop_pcmov_<mode>,
2364         xop_pcmov_<mode>256, xop_pperm, xop_pperm_pack_v2di_v4si,
2365         xop_pperm_pack_v4si_v8hi, xop_pperm_pack_v8hi_v16qi): Compress
2366         operand alternatives.
2367
2368 2009-11-06  Michael Matz  <matz@suse.de>
2369
2370         PR middle-end/41963
2371         * tree-ssa-math-opts.c (execute_cse_reciprocals): Check all uses
2372         of a potential reciprocal to really be reciprocals.
2373
2374 2009-11-06  Jakub Jelinek  <jakub@redhat.com>
2375
2376         * config/i386/x86intrin.h: Include fma4intrin.h, xopintrin.h and
2377         lwpintrin.h after immintrin.h.
2378         * config/i386/fma4intrin.h (__v8sf, __v4df, __m256, __m256d): Remove
2379         typedefs.
2380
2381         PR middle-end/41935
2382         * c-common.c (fold_offsetof_1) <case ARRAY_REF>: Don't crash for VLAs
2383         or non-constant index, allow index one past the last element and
2384         allow exceeding array bound in arrays that might be used as flexible
2385         array members.
2386
2387 2009-11-05  Richard Henderson  <rth@redhat.com>
2388
2389         * config/i386/ia32intrin.h: Protect CRC32 builtins with __SSE4_2__.
2390
2391 2009-11-05  Paul Brook  <paul@codesourcery.com>
2392
2393         * config/arm/arm.c (arm_fp_model, arm_fpu_arch, arm_fpu_tune): Remove.
2394         (arm_fpu_desc): New.
2395         (all_fpus): Add FPU details.
2396         (fp_model_for_fpu): Remove.
2397         (arm_override_options): Set and use arm_fpu_desc and arm_fpu_attr.
2398         (arm_output_epilogue, arm_save_coproc_regs): Use TARGET_FPA_EMU2.
2399         (arm_file_start): Use arm_fpu_desc.
2400         * config/arm/arm.h (TARGET_FPA, TARGET_MAVERICK, TARGET_VFP,
2401         TARGET_VFPD32, TARGET_VFP3, TARGET_NEON_FP16, TARGET_NEON): Use
2402         arm_fpu_desc.
2403         (TARGET_FPA_EMU2): Define.
2404         (arm_fp_model, fputype, arm_fpu_tune): Remove.
2405         (vfp_reg_type, arm_fpu_desc): New.
2406         * config/arm/arm.md (attr fpu): Simplify.
2407         * config/arm/fpa.md (movxf_fpa): Use TARGET_FPA_EMU2.
2408         * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Use string value.
2409         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Use string value.
2410         * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Use string value.
2411         * config/arm/vxworks.h (FPUTYPE_DEFAULT): Use string value.
2412
2413 2009-11-05  Michael Matz  <matz@suse.de>
2414
2415         * config/i386/i386.c (ix86_builtin_reciprocal): Remove dependency
2416         on TARGET_RECIP.
2417         * doc/invoke.texi (-mrecip): Clarify that we don't need -mrecip
2418         for 1/sqrtf.
2419
2420 2009-11-04  Jason Merrill  <jason@redhat.com>
2421
2422         PR c++/36912
2423         * varasm.c (initializer_constant_valid_p): A PLUS_EXPR
2424         or MINUS_EXPR of REAL_TYPE is not a valid constant initializer.
2425         (output_constant): Avoid crash after error.
2426
2427 2009-11-05  Martin Jambor  <mjambor@suse.cz>
2428
2429         * tree-sra.c (struct access): Changed comment of next_sibling field.
2430         (analyze_modified_params): Loop over accesses of a group rather than
2431         over all with the ame base, pass a common bitmap to
2432         walk_aliased_vdefs.
2433         (unmodified_by_ref_scalar_representative): Build link lists of
2434         accesses of a group.
2435         (splice_param_accesses): Likewise.
2436
2437 2009-11-04  Kenneth Zadeck  <zadeck@naturalbridge.com>
2438
2439         * df-scan.c (df-uses-record): Add case zero_extract of mem.
2440
2441 2009-11-04  Eric Botcazou  <ebotcazou@adacore.com>
2442
2443         PR target/10127
2444         PR ada/20548
2445         * config/i386/i386.md (probe_stack): New expander.
2446         (logical operation peepholes): Do not split stack checking probes.
2447
2448 2009-11-04  Harsha Jagasia  <harsha.jagasia@amd.com>
2449             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2450
2451         * doc/invoke.texi (-mlwp): Add documentation.
2452         * doc/extend.texi (x86 intrinsics): Add LWP intrinsics.
2453         * config.gcc (i[34567]86-*-*): Include lwpintrin.h.
2454         (x86_64-*-*): Ditto.
2455         * config/i386/lwpintrin.h: New file, provide x86 compiler
2456         intrinisics for LWP.
2457         * config/i386/cpuid.h (bit_LWP): Define LWP bit.
2458         * config/i386/x86intrin.h: Add LWP check and lwpintrin.h.
2459         * config/i386/i386-c.c (ix86_target_macros_internal): Check
2460         ISA_FLAG for LWP.
2461         * config/i386/i386.h (TARGET_LWP): New macro for LWP.
2462         * config/i386/i386.opt (-mlwp): New switch for LWP support.
2463         * config/i386/i386.c (OPTION_MASK_ISA_LWP_SET): New.
2464         (OPTION_MASK_ISA_LWP_UNSET): New.
2465         (ix86_handle_option): Handle -mlwp.
2466         (isa_opts): Handle -mlwp.
2467         (enum pta_flags): Add PTA_LWP.
2468         (override_options): Add LWP support.
2469         (IX86_BUILTIN_LLWPCB16): New for LWP intrinsic.
2470         (IX86_BUILTIN_LLWPCB32): Ditto.
2471         (IX86_BUILTIN_LLWPCB64): Ditto.
2472         (IX86_BUILTIN_SLWPCB16): Ditto.
2473         (IX86_BUILTIN_SLWPCB32): Ditto.
2474         (IX86_BUILTIN_SLWPCB64): Ditto.
2475         (IX86_BUILTIN_LWPVAL16): Ditto.
2476         (IX86_BUILTIN_LWPVAL32): Ditto.
2477         (IX86_BUILTIN_LWPVAL64): Ditto.
2478         (IX86_BUILTIN_LWPINS16): Ditto.
2479         (IX86_BUILTIN_LWPINS32): Ditto.
2480         (IX86_BUILTIN_LWPINS64): Ditto.
2481         (enum  ix86_special_builtin_type): Add LWP intrinsic support.
2482         (builtin_description): Ditto.
2483         (ix86_init_mmx_sse_builtins): Ditto.
2484         (ix86_expand_special_args_builtin): Ditto.
2485         * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC): Add new UNSPEC for
2486         LWP support.
2487         (UNSPEC_SLWP_INTRINSIC): Ditto.
2488         (UNSPECV_LWPVAL_INTRINSIC): Ditto.
2489         (UNSPECV_LWPINS_INTRINSIC): Ditto.
2490         (lwp_llwpcbhi1): New lwp pattern.
2491         (lwp_llwpcbsi1): Ditto.
2492         (lwp_llwpcbdi1): Ditto.
2493         (lwp_slwpcbhi1): Ditto.
2494         (lwp_slwpcbsi1): Ditto.
2495         (lwp_slwpcbdi1): Ditto.
2496         (lwp_lwpvalhi3): Ditto.
2497         (lwp_lwpvalsi3): Ditto.
2498         (lwp_lwpvaldi3): Ditto.
2499         (lwp_lwpinshi3): Ditto.
2500         (lwp_lwpinssi3): Ditto.
2501         (lwp_lwpinsdi3): Ditto.
2502
2503 2009-11-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2504             Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2505
2506         PR rtl-opt/41833
2507         * simplify-rtx.c (simplify_binary_operation_1): Simplify vec_select of
2508         a vec_duplicate.
2509
2510 2009-11-04  Richard Guenther  <rguenther@suse.de>
2511             Rafael Avila de Espindola  <espindola@google.com>
2512
2513         * gcc.c (process_command): Handle arguments name@offset.
2514
2515 2009-11-04  Harsha Jagasia  <harsha.jagasia@amd.com>
2516             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2517
2518         * config.gcc (i[34567]86-*-*): Include xopintrin.h.
2519         (x86_64-*-*): Ditto.
2520         * config/i386/xopintrin.h: New file, provide common x86 compiler
2521         intrinisics for XOP.
2522         * config/i386/cpuid.h (bit_XOP): Define XOP bit.
2523         * config/i386/x86intrin.h: Add XOP check and xopintrin.h.
2524         * config/i386/i386-c.c(ix86_target_macros_internal): Check
2525         ISA_FLAG for XOP.
2526         * config/i386/i386.h(TARGET_XOP): New macro for XOP.
2527         * config/i386/i386.opt (-mxop): New switch for XOP support.
2528         * config/i386/i386.md (UNSPEC_XOP_UNSIGNED_CMP)
2529         (UNSPEC_XOP_TRUEFALSE)
2530         (UNSPEC_XOP_PERMUTE)
2531         (UNSPEC_FRCZ): Add new UNSPEC for XOP support.
2532         (PPERM_*): New constants for vpperm instruction.
2533         (xop_pcmov_<mode>): Add XOP conditional mov instructions.
2534         * config/i386/i386.c (OPTION_MASK_ISA_XOP_SET): New.
2535         (OPTION_MASK_ISA_XOP_UNSET): New.
2536         (OPTION_MASK_ISA_XOP_UNSET): Change definition to depend on XOP.
2537         (ix86_handle_option): Handle -mxop.
2538         (isa_opts): Handle -mxop.
2539         (enum pta_flags): Add PTA_XOP.
2540         (override_options): Add XOP support.
2541         (print_operand): Add code for XOP compare instructions.
2542         (ix86_expand_sse_movcc): Extend for XOP conditional move instruction.
2543         (ix86_expand_int_vcond): Extend for XOP compare instruction.
2544
2545         (IX86_BUILTIN_VPCMOV): New for XOP intrinsic.
2546         (IX86_BUILTIN_VPCMOV_V2DI): Ditto.
2547         (IX86_BUILTIN_VPCMOV_V4SI): Ditto.
2548         (IX86_BUILTIN_VPCMOV_V8HI): Ditto.
2549         (IX86_BUILTIN_VPCMOV_V16QI): Ditto.
2550         (IX86_BUILTIN_VPCMOV_V4SF): Ditto.
2551         (IX86_BUILTIN_VPCMOV_V2DF): Ditto.
2552
2553         (IX86_BUILTIN_VPCMOV256): Ditto.
2554         (IX86_BUILTIN_VPCMOV_V4DI256): Ditto.
2555         (IX86_BUILTIN_VPCMOV_V8SI256): Ditto.
2556         (IX86_BUILTIN_VPCMOV_V16HI256): Ditto.
2557         (IX86_BUILTIN_VPCMOV_V32QI256): Ditto.
2558         (IX86_BUILTIN_VPCMOV_V8SF256): Ditto.
2559         (IX86_BUILTIN_VPCMOV_V4DF256): Ditto.
2560
2561         (IX86_BUILTIN_VPPERM): Ditto.
2562
2563         (IX86_BUILTIN_VPMACSSWW): Ditto.
2564         (IX86_BUILTIN_VPMACSWW): Ditto.
2565         (IX86_BUILTIN_VPMACSSWD): Ditto.
2566         (IX86_BUILTIN_VPMACSWD): Ditto.
2567         (IX86_BUILTIN_VPMACSSDD): Ditto.
2568         (IX86_BUILTIN_VPMACSDD): Ditto.
2569         (IX86_BUILTIN_VPMACSSDQL): Ditto.
2570         (IX86_BUILTIN_VPMACSSDQH): Ditto.
2571         (IX86_BUILTIN_VPMACSDQL): Ditto.
2572         (IX86_BUILTIN_VPMACSDQH): Ditto.
2573         (IX86_BUILTIN_VPMADCSSWD): Ditto.
2574         (IX86_BUILTIN_VPMADCSWD): Ditto.
2575
2576         (IX86_BUILTIN_VPHADDBW): Ditto.
2577         (IX86_BUILTIN_VPHADDBD): Ditto.
2578         (IX86_BUILTIN_VPHADDBQ): Ditto.
2579         (IX86_BUILTIN_VPHADDWD): Ditto.
2580         (IX86_BUILTIN_VPHADDWQ): Ditto.
2581         (IX86_BUILTIN_VPHADDDQ): Ditto.
2582         (IX86_BUILTIN_VPHADDUBW): Ditto.
2583         (IX86_BUILTIN_VPHADDUBD): Ditto.
2584         (IX86_BUILTIN_VPHADDUBQ): Ditto.
2585         (IX86_BUILTIN_VPHADDUWD): Ditto.
2586         (IX86_BUILTIN_VPHADDUWQ): Ditto.
2587         (IX86_BUILTIN_VPHADDUDQ): Ditto.
2588         (IX86_BUILTIN_VPHSUBBW): Ditto.
2589         (IX86_BUILTIN_VPHSUBWD): Ditto.
2590         (IX86_BUILTIN_VPHSUBDQ): Ditto.
2591
2592         (IX86_BUILTIN_VPROTB): Ditto.
2593         (IX86_BUILTIN_VPROTW): Ditto.
2594         (IX86_BUILTIN_VPROTD): Ditto.
2595         (IX86_BUILTIN_VPROTQ): Ditto.
2596         (IX86_BUILTIN_VPROTB_IMM): Ditto.
2597         (IX86_BUILTIN_VPROTW_IMM): Ditto.
2598         (IX86_BUILTIN_VPROTD_IMM): Ditto.
2599         (IX86_BUILTIN_VPROTQ_IMM): Ditto.
2600
2601         (IX86_BUILTIN_VPSHLB): Ditto.
2602         (IX86_BUILTIN_VPSHLW): Ditto.
2603         (IX86_BUILTIN_VPSHLD): Ditto.
2604         (IX86_BUILTIN_VPSHLQ): Ditto.
2605         (IX86_BUILTIN_VPSHAB): Ditto.
2606         (IX86_BUILTIN_VPSHAW): Ditto.
2607         (IX86_BUILTIN_VPSHAD): Ditto.
2608         (IX86_BUILTIN_VPSHAQ): Ditto.
2609
2610         (IX86_BUILTIN_VFRCZSS): Ditto.
2611         (IX86_BUILTIN_VFRCZSD): Ditto.
2612         (IX86_BUILTIN_VFRCZPS): Ditto.
2613         (IX86_BUILTIN_VFRCZPD): Ditto.
2614         (IX86_BUILTIN_VFRCZPS256): Ditto.
2615         (IX86_BUILTIN_VFRCZPD256): Ditto.
2616
2617         (IX86_BUILTIN_VPCOMEQUB): Ditto.
2618         (IX86_BUILTIN_VPCOMNEUB): Ditto.
2619         (IX86_BUILTIN_VPCOMLTUB): Ditto.
2620         (IX86_BUILTIN_VPCOMLEUB): Ditto.
2621         (IX86_BUILTIN_VPCOMGTUB): Ditto.
2622         (IX86_BUILTIN_VPCOMGEUB): Ditto.
2623         (IX86_BUILTIN_VPCOMFALSEUB): Ditto.
2624         (IX86_BUILTIN_VPCOMTRUEUB): Ditto.
2625
2626         (IX86_BUILTIN_VPCOMEQUW): Ditto.
2627         (IX86_BUILTIN_VPCOMNEUW): Ditto.
2628         (IX86_BUILTIN_VPCOMLTUW): Ditto.
2629         (IX86_BUILTIN_VPCOMLEUW): Ditto.
2630         (IX86_BUILTIN_VPCOMGTUW): Ditto.
2631         (IX86_BUILTIN_VPCOMGEUW): Ditto.
2632         (IX86_BUILTIN_VPCOMFALSEUW): Ditto.
2633         (IX86_BUILTIN_VPCOMTRUEUW): Ditto.
2634
2635         (IX86_BUILTIN_VPCOMEQUD): Ditto.
2636         (IX86_BUILTIN_VPCOMNEUD): Ditto.
2637         (IX86_BUILTIN_VPCOMLTUD): Ditto.
2638         (IX86_BUILTIN_VPCOMLEUD): Ditto.
2639         (IX86_BUILTIN_VPCOMGTUD): Ditto.
2640         (IX86_BUILTIN_VPCOMGEUD): Ditto.
2641         (IX86_BUILTIN_VPCOMFALSEUD): Ditto.
2642         (IX86_BUILTIN_VPCOMTRUEUD): Ditto.
2643
2644         (IX86_BUILTIN_VPCOMEQUQ): Ditto.
2645         (IX86_BUILTIN_VPCOMNEUQ): Ditto.
2646         (IX86_BUILTIN_VPCOMLTUQ): Ditto.
2647         (IX86_BUILTIN_VPCOMLEUQ): Ditto.
2648         (IX86_BUILTIN_VPCOMGTUQ): Ditto.
2649         (IX86_BUILTIN_VPCOMGEUQ): Ditto.
2650         (IX86_BUILTIN_VPCOMFALSEUQ): Ditto.
2651         (IX86_BUILTIN_VPCOMTRUEUQ): Ditto.
2652
2653         (IX86_BUILTIN_VPCOMEQB): Ditto.
2654         (IX86_BUILTIN_VPCOMNEB): Ditto.
2655         (IX86_BUILTIN_VPCOMLTB): Ditto.
2656         (IX86_BUILTIN_VPCOMLEB): Ditto.
2657         (IX86_BUILTIN_VPCOMGTB): Ditto.
2658         (IX86_BUILTIN_VPCOMGEB): Ditto.
2659         (IX86_BUILTIN_VPCOMFALSEB): Ditto.
2660         (IX86_BUILTIN_VPCOMTRUEB): Ditto.
2661
2662         (IX86_BUILTIN_VPCOMEQW): Ditto.
2663         (IX86_BUILTIN_VPCOMNEW): Ditto.
2664         (IX86_BUILTIN_VPCOMLTW): Ditto.
2665         (IX86_BUILTIN_VPCOMLEW): Ditto.
2666         (IX86_BUILTIN_VPCOMGTW): Ditto.
2667         (IX86_BUILTIN_VPCOMGEW): Ditto.
2668         (IX86_BUILTIN_VPCOMFALSEW): Ditto.
2669         (IX86_BUILTIN_VPCOMTRUEW): Ditto.
2670
2671         (IX86_BUILTIN_VPCOMEQD): Ditto.
2672         (IX86_BUILTIN_VPCOMNED): Ditto.
2673         (IX86_BUILTIN_VPCOMLTD): Ditto.
2674         (IX86_BUILTIN_VPCOMLED): Ditto.
2675         (IX86_BUILTIN_VPCOMGTD): Ditto.
2676         (IX86_BUILTIN_VPCOMGED): Ditto.
2677         (IX86_BUILTIN_VPCOMFALSED): Ditto.
2678         (IX86_BUILTIN_VPCOMTRUED): Ditto.
2679
2680         (IX86_BUILTIN_VPCOMEQQ): Ditto.
2681         (IX86_BUILTIN_VPCOMNEQ): Ditto.
2682         (IX86_BUILTIN_VPCOMLTQ): Ditto.
2683         (IX86_BUILTIN_VPCOMLEQ): Ditto.
2684         (IX86_BUILTIN_VPCOMGTQ): Ditto.
2685         (IX86_BUILTIN_VPCOMGEQ): Ditto.
2686         (IX86_BUILTIN_VPCOMFALSEQ): Ditto.
2687         (IX86_BUILTIN_VPCOMTRUEQ): Ditto.
2688
2689         (enum multi_arg_type): New enum for describing the various XOP
2690         intrinsic argument types.
2691         (bdesc_multi_arg): New table for XOP intrinsics.
2692         (ix86_init_mmx_sse_builtins): Add XOP intrinsic support.
2693         (ix86_expand_multi_arg_builtin): New function for creating XOP
2694         intrinsics.
2695
2696         * config/i386/sse.md (sserotatemax): New mode attribute for XOP.
2697         (xop_pmacsww): Ditto.
2698         (xop_pmacssww): Ditto.
2699         (xop_pmacsdd): Ditto.
2700         (xop_pmacssdd): Ditto.
2701         (xop_pmacssdql): Ditto.
2702         (xop_pmacssdqh): Ditto.
2703         (xop_pmacsdql): Ditto.
2704         (xop_pmacsdql_mem): Ditto.
2705         (xop_mulv2div2di3_low): Ditto.
2706         (xop_pmacsdqh): Ditto.
2707         (xop_pmacsdqh_mem): Ditto.
2708         (xop_mulv2div2di3_high): Ditto.
2709         (xop_pmacsswd): Ditto.
2710         (xop_pmacswd): Ditto.
2711         (xop_pmadcsswd): Ditto.
2712         (xop_pmadcswd): Ditto.
2713         (xop_pcmov_<mode>): Ditto.
2714         (xop_pcmov_<mode>256): Ditto.
2715         (xop_phaddbw): Ditto.
2716         (xop_phaddbd): Ditto.
2717         (xop_phaddbq): Ditto.
2718         (xop_phaddwd): Ditto.
2719         (xop_phaddwq): Ditto.
2720         (xop_phadddq): Ditto.
2721         (xop_phaddubw): Ditto.
2722         (xop_phaddubd): Ditto.
2723         (xop_phaddubq): Ditto.
2724         (xop_phadduwd): Ditto.
2725         (xop_phadduwq): Ditto.
2726         (xop_phaddudq): Ditto.
2727         (xop_phsubbw): Ditto.
2728         (xop_phsubwd): Ditto.
2729         (xop_phsubdq): Ditto.
2730         (xop_pperm): Ditto.
2731         (rotl<mode>3): Ditto.
2732         (rotr<mode>3): Ditto.
2733         (xop_rotl<mode>3): Ditto.
2734         (xop_rotr<mode>3): Ditto.
2735         (vrotr<mode>3): Ditto.
2736         (vrotl<mode>3): Ditto.
2737         (xop_vrotl<mode>3): Ditto.
2738         (vlshr<mode>3): Ditto.
2739         (vashr<mode>3): Ditto.
2740         (vashl<mode>3
2741         (xop_ashl<mode>3): Ditto.
2742         (xop_lshl<mode>3): Ditto.
2743         (ashlv16qi3): Ditto.
2744         (lshlv16qi3): Ditto.
2745         (ashrv16qi3): Ditto.
2746         (ashrv2di3): Ditto.
2747         (xop_frcz<mode>2): Ditto.
2748         (xop_vmfrcz<mode>2): Ditto.
2749         (xop_frcz<mode>2256): Ditto.
2750         (xop_maskcmp<mode>3): Ditto.
2751         (xop_maskcmp_uns<mode>3): Ditto.
2752         (xop_maskcmp_uns2<mode>3): Ditto.
2753         (xop_pcom_tf<mode>3): Ditto.
2754
2755         * doc/invoke.texi (-mxop): Add documentation.
2756         * doc/extend.texi (x86 intrinsics): Add XOP intrinsics.
2757
2758 2009-11-03  Mark Mitchell  <mark@codesourcery.com>
2759
2760         PR driver/11810
2761         * gcc.c (SWITCHES_NEED_SPACES): Define to "o".
2762         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Remove here.
2763         * config/mips/iris.h (SWITCHES_NEED_SPACES): Remove here.
2764
2765 2009-11-04  Richard Earnshaw  <rearnsha@arm.com>
2766
2767         PR target/40835
2768         * arm.md (peephole2 patterns for move and compare): New.
2769
2770 2009-11-04  Nick Clifton  <nickc@redhat.com>
2771
2772         * defaults.h (CONSTANT_ADDRESS_P): Provide a default definition.
2773         Make sure that it does not allow CONST_DOUBLEs.
2774         * doc/tm.texi (CONSTANT_ADDRESS_P): Update description.
2775         * config/avr/avr.h (CONSTANT_ADDRESS_P): Delete.
2776         * config/bfin/bfin.h (CONSTANT_ADDRESS_P): Delete.
2777         * config/cris/cris.h (CONSTANT_ADDRESS_P): Delete.
2778         * config/fr30/fr30.h (CONSTANT_ADDRESS_P): Delete.
2779         * config/frv/frv.h (CONSTANT_ADDRESS_P): Delete.
2780         * config/m32c/m32c.h (CONSTANT_ADDRESS_P): Delete.
2781         * config/m68hc11/m68hc11.h (CONSTANT_ADDRESS_P): Delete.
2782         * config/mep/mep.h (CONSTANT_ADDRESS_P): Delete.
2783         * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Delete.
2784         * config/moxie/moxie.h (CONSTANT_ADDRESS_P): Delete.
2785         * config/pdp11/pdp11.h (CONSTANT_ADDRESS_P): Delete.
2786         * config/picochip/picochip.h (CONSTANT_ADDRESS_P): Delete.
2787         * config/score/score.h (CONSTANT_ADDRESS_P): Delete.
2788         * config/stormy16/stormy16.h (CONSTANT_ADDRESS_P): Delete.
2789
2790 2009-11-04  Richard Guenther  <rguenther@suse.de>
2791
2792         PR tree-optimization/41919
2793         * tree-vrp.c (test_for_singularity): Properly compare values.
2794
2795 2009-11-04  Revital Eres  <eres@il.ibm.com>
2796
2797         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2798         Consider peeling for alignment only for stores and remove
2799         redundant assignment.
2800
2801 2009-11-04  Maxim Kuvyrkov  <maxim@codesourcery.com>
2802
2803         PR target/41302
2804         * config/m68k/m68k.c (m68k_reg_present_p): New static function.
2805         (m68k_ok_for_sibcall_p): Handle different result return locations.
2806
2807 2009-11-04  Richard Guenther  <rguenther@suse.de>
2808
2809         * c-opts.c (c_common_post_options): Move LTO option processing
2810         code ...
2811         * opts.c (decode_options): ... here.
2812
2813 2009-11-04  Jakub Jelinek  <jakub@redhat.com>
2814
2815         * c-common.c (fold_offsetof_1): Use %wd instead of
2816         HOST_WIDE_INT_PRINT_DEC.
2817
2818 2009-11-04  Maciej W. Rozycki  <macro@linux-mips.org>
2819
2820         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Don't define
2821         __pic__ or __PIC__.
2822
2823 2009-11-04  Maciej W. Rozycki  <macro@linux-mips.org>
2824
2825         * config.gcc (vax-*-linux*): Keep the original contents of
2826         tmake_file while adding vax/t-linux.
2827
2828 2009-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2829
2830         PR target/10127
2831         PR ada/20548
2832         * expr.h (STACK_CHECK_PROBE_INTERVAL): Delete.
2833         (STACK_CHECK_PROBE_INTERVAL_EXP): New macro.
2834         (STACK_CHECK_MOVING_SP): Likewise.
2835         * system.h (STACK_CHECK_PROBE_INTERVAL): Poison it.
2836         * doc/tm.texi (Stack Checking): Delete STACK_CHECK_PROBE_INTERVAL.
2837         Document STACK_CHECK_PROBE_INTERVAL_EXP and STACK_CHECK_MOVING_SP.
2838         * doc/md.texi (Standard Pattern Names): Tweak entry of CHECK_STACK.
2839         Document PROBE_STACK.
2840         * explow.c (anti_adjust_stack_and_probe): New function.
2841         (allocate_dynamic_stack_space): Do not directly allocate space if
2842         STACK_CHECK_MOVING_SP, instead invoke above function.
2843         (emit_stack_probe): Handle probe_stack insn.
2844         (PROBE_INTERVAL): New macro.
2845         (STACK_GROW_OPTAB): Likewise.
2846         (STACK_GROW_OFF): Likewise.
2847         (probe_stack_range): Use Pmode and memory_address consistently.  Fix
2848         loop condition in the small constant case.  Rewrite in the general
2849         case to be immune to wraparounds.  Make sure the address of probes
2850         is valid.  Try to use [base + disp] addressing mode if possible.
2851         * ira.c (setup_eliminable_regset): Set frame_pointer_needed if stack
2852         checking is enabled and STACK_CHECK_MOVING_SP.
2853         * rtlanal.c (may_trap_p_1) <MEM>: If stack checking is enabled,
2854         return 1 for volatile references to the stack pointer.
2855         * tree.c (build_common_builtin_nodes): Do not set ECF_NOTHROW on
2856         __builtin_alloca if stack checking is enabled.
2857         * unwind-dw2.c (uw_identify_context): Take into account whether the
2858         context is that of a signal frame or not.
2859         * config/i386/linux.h (STACK_CHECK_MOVING_SP): Define to 1.
2860         * config/i386/linux64.h (STACK_CHECK_MOVING_SP): Likewise.
2861
2862 2009-11-03  Jakub Jelinek  <jakub@redhat.com>
2863
2864         PR rtl-optimization/41917
2865         * rtlanal.c (num_sign_bit_copies1) <case UMOD>: If sign bit of second
2866         operand isn't known to be 0, return 1.
2867
2868 2009-11-03  Richard Sandiford  <rdsandiford@googlemail.com>
2869
2870         * config/mips/mips.md: Fix typos.
2871
2872 2009-11-03  Richard Sandiford  <rdsandiford@googlemail.com>
2873
2874         * doc/invoke.texi: Fix typo.
2875
2876 2009-11-03  Paul Brook  <paul@codesourcery.com>
2877
2878         * config/arm/neon.ml (vectype): Add T_floatSF.
2879         (string_of_vectype): Ditto.
2880         * config/arm/neon-gen.ml (signed_ctype): Add T_floatSF.
2881         (deftypes): Use float for float32_t.
2882         * config/arm/arm_neon.h: Regenerate.
2883
2884 2009-11-03  Nick Clifton  <nickc@redhat.com>
2885             Kevin Buettner  <kevinb@redhat.com>
2886
2887         * config/rx/predicates.md (rx_store_multiple_vector): Reverse
2888         order of expected registers.
2889         (rx_load_multiple_vector): Likewise.
2890         (rx_rtsd_vector): Likewise.
2891         * config/rx/rx.c (rx_cpu_type): New variable.
2892         (rx_print_operand): Fix bug printing 64-bit constant values.
2893         (rx_emit_stack_pushm): Reverse order of pushed registers.
2894         (gen_rx_store_vector): Likewise.
2895         (is_fast_interrupt_func): Only accept "fast_interrupt" as the
2896         attribute name.
2897         (is_exception_func): Rename to is_interrupt_func and only accept
2898         "interrupt" as the attribute name.
2899         (rx_get_stack_layout): Use new function name.
2900         (rx_func_attr_inlinable): Likewise.
2901         (rx_attribute_table): Remove "exception".
2902         (rx_expand_prologue): If necessary push the accumulator register
2903         in the prologue of interrupt functions.
2904         (rx_expand_epilogue): If necessary pop the accumulator.
2905         (rx_builtins): Add RX_BUILTIN_MVTIPL.
2906         (rx_expand_builtin_stz): Remove.
2907         (rx_expand_builtin_mvtipl): New function.
2908         (rx_init_builtins): Handle RX_BUILTIN_MVTIPL.
2909         (rx_expand_builtin): Likewise.
2910         (rx_enable_fpu): New variable.
2911         (rx_handle_option): Handle -fpu, -nofpu, -mcpu and -patch.
2912         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Assert machine based
2913         on rx_cpu_type.  Define __RX_FPU_INSNS__ if FPU insns are allowed.
2914         (enum rx_cpu_types): Define.
2915         (ASM_SPEC): Pass -m32bit-doubles on to assembler.
2916         (INCOMING_FRAME_SP_OFFSET): Define.
2917         (ARG_POINTER_CFA_OFFSET): Define.
2918         (FRAME_POINTER_CFA_OFFSET): Define.
2919         (OVERRIDE_OPTIONS): Enable fast math if RX FPU insns are enabled.
2920         (ALLOW_RX_FPU_INSNS): Define.
2921         * config/rx/rx.md: Test ALLOW_RX_FPU_INSNS instead of
2922         fast_math_flags_set_p.
2923         (UNSPEC_BUILTIN_MVTIPL): Define.
2924         (revl): Rename to bswapsi2.
2925         (bswaphi2): New pattern.
2926         (mvtachi): Mark as volatile because it uses a register unknown to GCC.
2927         (mvtaclo): Likewise.
2928         (racw): Likewise.
2929         (mvtc): Remove clobber of cc0.
2930         (mvtcp): Delete.
2931         (opecp): Delete.
2932         * config/rx/rx.opt (mieee): Remove.
2933         (fpu): Add.
2934         (nofpu): Add.
2935         (mcpu=): Add.
2936         (patch=): Add.
2937         (msave-acc-in-interrupts): Add.
2938         * config/rx/t-rx (MULTILIB_OPTIONS): Change default to 64bit doubles.
2939         (MULTILIB_DIRS): Likewise.
2940         (MULTILIB_MATCHES): Treat -fpu as an alias for -m32bit-doubles.
2941         * doc/extend.texi: Remove description of "exception" function
2942         attribute.
2943         * doc/invoke.texi: Document -fpu, -nofpu, -mcpu=, -patch= and
2944         -msave-acc-in-interrupts options.
2945
2946 2009-11-03  Richard Guenther  <rguenther@suse.de>
2947
2948         * c-common.c (fold_offsetof_1): Use HOST_WIDE_INT_PRINT_DEC.
2949
2950 2009-11-03  Dodji Seketeli  <dodji@redhat.com>
2951
2952         PR c++/38699
2953         * c-common.c (fold_offsetof_1): Issue errors when the member
2954         designator of the offsetof expression is not legitimate.
2955
2956 2009-11-03  Uros Bizjak  <ubizjak@gmail.com>
2957
2958         * config/i386/i386.md (*call_value_1_rex64_ms_sysv): Use register
2959         names instead of numerical constants.
2960         (sse_prologue_save): Ditto.
2961         (*sse_prologue_save_insn): Ditto.
2962
2963 2009-11-03  Uros Bizjak  <ubizjak@gmail.com>
2964
2965         PR target/41900
2966         * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
2967         (TARGET_CALL_ESP): New define.
2968         * config/i386/i386.c (initial_ix86_tune_features): Initialize
2969         X86_ARCH_CALL_ESP.
2970         * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
2971         *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
2972         *call_1, *call_value_pop_1 and *call_value_1.  Depend on
2973         TARGET_CALL_ESP.
2974         (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
2975         New patterns, use "lsm" as operand 1 constraint.
2976         * config/i386/predicates.md (call_insn_operand): Depend on
2977         index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
2978
2979 2009-11-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2980
2981         PR tree-optimization/41857
2982         * tree-flow.h (rewrite_use_address): Add BASE_HINT argument.
2983         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass base hint
2984         to create_mem_ref.
2985         * tree-ssa-address.c (move_hint_to_base): New function.
2986         (most_expensive_mult_to_index): Add TYPE argument.  Use mode and
2987         address space associated with TYPE.
2988         (addr_to_parts): Add TYPE and BASE_HINT arguments.  Pass TYPE to
2989         most_expensive_mult_to_index.  Call move_hint_to_base.
2990         (create_mem_ref): Add BASE_HINT argument.  Pass BASE_HINT and
2991         TYPE to addr_to_parts.
2992
2993 2009-11-02  Martin Jambor  <mjambor@suse.cz>
2994
2995         PR tree-optimization/41750
2996         * tree-sra.c (analyze_modified_params): Loop over all
2997         representatives of components of a parameter.
2998
2999 2009-11-02  Jakub Jelinek  <jakub@redhat.com>
3000
3001         PR tree-optimization/41841
3002         * ipa-struct-reorg.c (build_data_structure): Don't attempt to look at
3003         local variables of not yet materialized clones.
3004
3005         PR debug/41893
3006         * cfgexpand.c (expand_debug_expr): Don't attempt to create DECL_RTL
3007         for a VOIDmode variable.
3008
3009         PR c++/41774
3010         * c-pragma.c (visstack): Change into vector of ints rather than
3011         enum symbol_visibility.
3012         (push_visibility): Add kind argument, push default_visibility together
3013         with kind.
3014         (pop_visibility): Add kind argument, return true if successful, fail
3015         if visibility stack is empty or if stack top is of different kind.
3016         (handle_pragma_visibility): Don't check length of visstack, instead
3017         call pop_visibility and issue diagnostics if it failed.  Pass 0
3018         as last argument to push_visibility and pop_visibility.
3019         * c-pragma.h (push_visibility): Add kind argument.
3020         (pop_visibility): Likewise.  Return bool instead of void.
3021
3022 2009-11-01  Eric Botcazou  <ebotcazou@adacore.com>
3023
3024         * tree.def (TARGET_MEM_REF): Update comment.
3025         * alias.c (get_alias_set): Retrieve the original memory reference for
3026         a TARGET_MEM_REF before proceeding.
3027
3028 2009-10-31  Anatoly Sokolov  <aesok@post.ru>
3029
3030         * config/frv/frv.c (frv_function_value, frv_libcall_value,
3031         frv_function_value_regno_p): New functions.
3032         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
3033         * config/frv/frv.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
3034         (FUNCTION_VALUE_REGNO_P): Redefine, use frv_function_value_regno_p.
3035         * config/frv/frv-protos.h (frv_function_value_regno_p): Declare.
3036
3037 2009-10-31  Anatoly Sokolov  <aesok@post.ru>
3038
3039         * config/mn10300/mn10300.c (mn10300_function_value): Make static, add
3040         new 'outgoing' argument.
3041         (mn10300_libcall_value, mn10300_function_value_regno_p): New functions.
3042         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
3043         * config/mn10300/mn10300.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
3044         LIBCALL_VALUE): Remove.
3045         (FUNCTION_VALUE_REGNO_P): Redefine, use mn10300_function_value_regno_p.
3046         * config/mn10300/mn10300-protos.h (mn10300_function_value): Remove.
3047         (mh10300_function_value_regno_p): Declare.
3048
3049 2009-10-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3050
3051         * config/arm/cortex-a9.md: New - integer pipeline description.
3052
3053 2009-10-31  Eric Botcazou  <ebotcazou@adacore.com>
3054
3055         * tree-ssa-sccvn.c (vn_reference_lookup_3): Bail out instead of
3056         aborting if the sizes of the two references don't match.
3057
3058 2009-10-31  Toon Moene  <toon@moene.org>
3059
3060         * ipa-inline.c (cgraph_decide_inlining):
3061         Include reason for not inlining called-once functions in dump file.
3062
3063 2009-10-30  Daniel Gutson  <dgutson@codesourcery.com>
3064
3065         * config/arm/linux-eabi.h (LINK_SPEC): BE8_LINK_SPEC added.
3066         * config/arm/bpapi.h (BE8_LINK_SPEC): New define.
3067         (LINK_SPEC): BE_LINK_SPEC added.
3068
3069 2009-10-30  Richard Guenther  <rguenther@suse.de>
3070
3071         PR lto/41858
3072         * lto-streamer.h (struct lto_file_decl_data): Remove fd member.
3073
3074 2009-10-30  Nathan Sidwell  <nathan@codesourcery.com>
3075
3076         * target-def.h (TARGET_ASM_TTYPE): Correct typo of TARGET_ARM_TTYPE.
3077         * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): Remove unused
3078         label.
3079
3080 2009-10-30  Martin Jambor  <mjambor@suse.cz>
3081
3082         * tree-sra.c (build_ref_for_offset_1): Remove a comment.
3083
3084 2009-10-30  H.J. Lu  <hongjiu.lu@intel.com>
3085
3086         PR target/40838
3087         * cfgexpand.c (expand_stack_alignment): Call update_stack_boundary
3088         first.  Move assert on stack_alignment_estimated just before
3089         setting stack_realign_needed.
3090         (gimple_expand_cfg): Initialize stack_alignment_estimated to 0.
3091         Don't call update_stack_boundary.
3092
3093         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): New.
3094         (verride_options): Don't check ix86_force_align_arg_pointer here.
3095         (ix86_function_ok_for_sibcall): Use it.
3096         (ix86_update_stack_boundary): Likewise.
3097
3098         * config/i386/i386.h (STACK_REALIGN_DEFAULT): Update comments.
3099
3100 2009-10-30  Richard Earnshaw  <rearnsha@arm.com>
3101
3102         * arm.md (QHSI): New mode iterator.
3103         (movqi): If generating for thumb, then truncate any immediate to
3104         8 bits.
3105         * thumb2.md (thumb2_movsi_shortim and peephole2 generator): Replace
3106         with...
3107         (thumb2_mov<mode>_shortim and peephole2 generator): ... iterator based
3108         version.
3109
3110 2009-10-29  Cary Coutant  <ccoutant@google.com>
3111
3112         PR debug/41700
3113         * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hook (two
3114         locations in the source).
3115         (store_vcall_insn): New function.
3116         (lookup_vcall_insn): New function.
3117         (dwarf2out_virtual_call_token): Use store_vcall_insn.
3118         (dwarf2out_copy_call_info): New function.
3119         (dwarf2out_virtual_call): Use lookup_vcall_insn.
3120         * emit-rtl.c (try_split): Call copy_call_info debug hook.
3121         * debug.h (struct gcc_debug_hooks): Add copy_call_info hook.
3122         * debug.c (do_nothing_debug_hooks): Add dummy entry for new hook.
3123         (debug_nothing_rtx_rtx): New dummy hook.
3124         * dbxout.c (dbx_debug_hooks): Add dummy entry for new hook.
3125         (xcoff_debug_hooks): Likewise.
3126         * sdbout.c (sdb_debug_hooks): Likewise.
3127         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3128
3129 2009-10-29  David Daney  <ddaney@caviumnetworks.com>
3130
3131         * doc/invoke.texi (mmcount-ra-address): Document new command line
3132         option.
3133         * config/mips/mips.opt (mmcount-ra-address): New option.
3134         * config/mips/mips-protos.h (mips_function_profiler): Declare new
3135         function.
3136         * config/mips/mips.c (struct mips_frame_info): Add ra_fp_offset
3137         member.
3138         (mips_for_each_saved_gpr_and_fpr): Set ra_fp_offset.
3139         (mips_function_profiler): Moved from FUNCTION_PROFILER, and
3140         rewritten.
3141         * config/mips/mips.h (FUNCTION_PROFILER): Body of macro moved to
3142         mips_function_profiler.
3143
3144 2009-10-29  Steve Ellcey  <sje@cup.hp.com>
3145
3146         PR middle-end/37565
3147         PR target/38018
3148         * doc/tm.texi (OVERRIDE_OPTIONS): Update.
3149         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
3150         * optc-gen.awk (cl_target_option_restore): Include call to
3151         targetm.override_options_after_change.
3152         * target-def.h (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
3153         * target.h (override_options_after_change): New.
3154         * c-common.c (parse_optimize_options): Call
3155         targetm.override_options_after_change.
3156         * config/ia64/ia64.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
3157         (ia64_override_options_after_change): New.
3158         (ia64_override_options) Add call to above.
3159
3160 2009-10-29  Michael Matz  <matz@suse.de>
3161
3162         * tree-ssa-math-opts.c (execute_convert_to_rsqrt): Remove.
3163         (gate_convert_to_rsqrt): Ditto.
3164         (pass_convert_to_rsqrt): Ditto.
3165         * tree-pass.h (pass_convert_to_rsqrt): Don't declare.
3166         * passes.c (init_optimization_passes): Don't add pass_convert_to_rsqrt
3167         to pass list.
3168
3169         * config/i386/i386.c (ix86_emit_swdivsf): Change evaluation order.
3170
3171 2009-10-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3172
3173         * config/arm/arm.c (find_best_start): Fix type of remainder to be
3174         unsigned.
3175
3176 2009-10-29  Martin Jambor  <mjambor@suse.cz>
3177
3178         PR tree-optimization/41775
3179         * tree-sra.c (build_ref_for_offset): Unshare *expr if not NULL.
3180         (generate_subtree_copies): Do not unshare agg.
3181         (load_assign_lhs_subreplacements): Do not unshare rhs.
3182         (sra_modify_assign): Do not unshare exprs.
3183         (propagate_subacesses_accross_link): Renamed to
3184         propagate_subaccesses_across_link.
3185
3186 2009-10-29  Richard Earnshaw  <rearnsha@arm.com>
3187
3188         * arm.c (count_insns_for_constant): Rework to support counting for
3189         thumb2 immediates as well.
3190         (find_best_start): Split out from arm_gen_constant.
3191         (arm_gen_constant): Rework to support XOR with immediate.
3192
3193 2009-10-29  Chao-ying Fu  <fu@mips.com>
3194
3195         * config/mips/mips.c (mips_emit_unary, mips_force_unary): New
3196         functions.
3197         (mips_expand_synci_loop):  Use the length rtx to control the
3198         synci loop from the begin rtx that points to the first byte of
3199         the cache line.
3200
3201 2009-10-28  Rafael Avila de Espindola  <espindola@google.com>
3202
3203         * doc/invoke.texi: Rename -use-linker-plugin -fuse-linker-plugin.
3204
3205 2009-10-28  Rafael Avila de Espindola  <espindola@google.com>
3206
3207         * dbxout.c (dbxout_common_check): Accept non public trees.
3208         * dwarf2out.c (fortran_common): Accept non public trees.
3209
3210 2009-10-28  Rafael Avila de Espindola  <espindola@google.com>
3211
3212         * common.opt (fuse-linker-plugin): New option.
3213         * gcc.c (LINK_COMMAND_SPEC, main): Rename use-linker-plugin to
3214         fuse-linker-plugin.
3215         * opts.c (common_handle_option): Ignore OPT_fuse_linker_plugin.
3216
3217 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
3218
3219         PR rtl-optimization/39715
3220         * config/arm/arm.md (cstoresi4): Use gen_cstoresi_ltu_thumb1.
3221         (gen_cstoresi_ltu_thumb1): New splitter.
3222
3223 2009-10-28  Richard Guenther  <rguenther@suse.de>
3224
3225         PR lto/41808
3226         PR lto/41839
3227         * tree-ssa.c (useless_type_conversion_p): Do not treat
3228         conversions to pointers to incomplete types as useless.
3229         * gimple.c (gimple_types_compatible_p): Compare struct tags,
3230         not typedef names.
3231
3232 2009-10-28  Jakub Jelinek  <jakub@redhat.com>
3233
3234         * var-tracking.c (emit_note_insn_var_location): Don't call the second
3235         vt_expand_loc unnecessarily when location is not a register nor
3236         memory.
3237
3238         PR middle-end/41837
3239         * ipa-struct-reorg.c (find_field_in_struct_1): Return NULL if
3240         fields don't have DECL_NAME.
3241
3242         PR debug/41801
3243         * builtins.c (get_builtin_sync_mem): Expand loc in ptr_mode,
3244         call convert_memory_address on addr.
3245
3246         PR target/41762
3247         * config/i386/i386.c (ix86_pic_register_p): Don't call
3248         rtx_equal_for_cselib_p for VALUEs discarded as useless.
3249
3250 2009-10-28  Richard Sandiford  <rdsandiford@googlemail.com>
3251
3252         * var-tracking.c (emit_note_insn_var_location): Get the mode of
3253         a variable part from its REG, MEM or VALUE.
3254
3255 2009-10-28  Richard Guenther  <rguenther@suse.de>
3256
3257         * gimple.c (gimple_get_alias_set): Fix comment typo.
3258
3259 2009-10-28  Richard Guenther  <rguenther@suse.de>
3260
3261         * tree.c (free_lang_data_in_type): Do not call get_alias_set.
3262         (free_lang_data): Unconditionally compute alias sets for all
3263         standard integer types.  Bail out if gate bailed out previously.
3264         Do not reset the types_compatible_p langhook.
3265         (gate_free_lang_data): Remove.
3266         (struct pass_ipa_free_lang_data): Enable unconditionally.
3267         * gimple.c (gimple_get_alias_set): Use the same alias-set for
3268         all pointer types.
3269
3270 2009-10-28  Richard Guenther  <rguenther@suse.de>
3271
3272         PR middle-end/41855
3273         * tree-ssa-alias.c (refs_may_alias_p_1): Deal with CONST_DECLs
3274         (ref_maybe_used_by_call_p_1): Fix bcopy handling.
3275         (call_may_clobber_ref_p_1): Likewise.
3276         * tree-ssa-structalias.c (find_func_aliases): Likewise.
3277         * alias.c (nonoverlapping_memrefs_p): Deal with CONST_DECLs.
3278
3279 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
3280
3281         PR rtl-optimization/41812
3282
3283         Revert:
3284         2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
3285
3286         * df-problems.c (df_md_scratch): New.
3287         (df_md_alloc, df_md_free): Allocate/free it.
3288         (df_md_local_compute): Only include live registers in init.
3289         (df_md_transfer_function): Prune the in-set computed by
3290         the confluence function, and the gen-set too.
3291
3292 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
3293
3294         PR rtl-optimization/39715
3295         * combine.c (simplify_comparison): Use extensions to
3296         widen comparisons.  Try an ANDing first.
3297
3298 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
3299
3300         PR rtl-optimization/40741
3301         * config/arm/arm.c (thumb1_rtx_costs): IOR or XOR with
3302         a small constant is cheap.
3303         * config/arm/arm.md (andsi3, iorsi3): Try to place the result of
3304         force_reg on the LHS.
3305         (xorsi3): Likewise, and split the XOR if the constant is complex
3306         and not in Thumb mode.
3307
3308 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
3309
3310         * expmed.c (emit_store_flag): Check costs before
3311         transforming to the opposite representation.
3312
3313 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
3314
3315         * config/sh/sh.md (cbranchfp4_media): Remove hack extending
3316         cstore result to DImode.
3317
3318 2009-10-28  Kaz Kojima  <kkojima@gcc.gnu.org>
3319
3320         * config/sh/sh.md (stuff_delay_slot): Move const_int pattern
3321         inside the unspec vector.
3322
3323 2009-10-27  Richard Henderson  <rth@redhat.com>
3324
3325         * cgraphunit.c (cgraph_optimize): Maintain timevar stack properly.
3326
3327 2009-10-27  Richard Henderson  <rth@redhat.com>
3328
3329         PR c++/41819
3330         * tree-eh.c (eh_region_may_contain_throw_map): Rename from
3331         eh_region_may_contain_throw; update users.
3332         (eh_region_may_contain_throw): New function.
3333         (lower_catch): Check flag_exceptions before creating exception region.
3334         (lower_eh_filter, lower_eh_must_not_throw): Likewise.
3335         (lower_cleanup): Tidy existing flag_exceptions check to match.
3336
3337 2009-10-27  Kai Tietz <kai.tietz@onevision.com>
3338
3339         PR/41799
3340         * config/i386/mingw32.h (CHECK_EXECUTE_STACK_ENABLED): New macro.
3341         * config/i386/mingw.opt: Add fset-stack-executable.
3342         * config/i386/i386.c (ix86_trampoline_init): Make call to
3343         emit_library_call conditional, if CHECK_EXECUTE_STACK_ENABLED is
3344         defined and its value is not zero.
3345         * doc/invoke.texi
3346
3347 2009-10-27  Richard Guenther  <rguenther@suse.de>
3348
3349         * tree-ssa-structalias.c (find_func_aliases): In IPA mode
3350         handle calls to externally visible functions like in regular mode.
3351         (create_variable_info_for): Do not create function infos here.
3352         (have_alias_info): Remove write-only variable.
3353         (solve_constraints): New function split out from common code
3354         in compute_points_to_sets and ipa_pta_execute.
3355         (compute_points_to_sets): Adjust.
3356         (ipa_pta_execute): Likewise.  Handle clones and externally visible
3357         functions like in non-IPA mode.
3358
3359 2009-10-27  Jakub Jelinek  <jakub@redhat.com>
3360
3361         PR c/41842
3362         * c-typeck.c (convert_arguments): Return -1 if any of the arguments is
3363         error_mark_node.
3364
3365 2009-10-27  Richard Guenther  <rguenther@suse.de>
3366
3367         * tree-complex.c (expand_complex_div_wide): Check for
3368         INTEGER_CST, not TREE_CONSTANT on comparison folding result.
3369
3370 2009-10-27  Revital Eres  <eres@il.ibm.com>
3371
3372         PR tree-optimization/40648
3373         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3374         Change decision of when to peel for alignment.
3375
3376 2009-10-27  Richard Guenther  <rguenther@suse.de>
3377
3378         PR lto/41821
3379         * gimple.c (gimple_types_compatible_p): Handle OFFSET_TYPE.
3380
3381 2009-10-27  Aldy Hernandez  <aldyh@redhat.com>
3382
3383         PR bootstrap/41451
3384         * fold-const.c (fold_binary_loc): Do not call
3385         protected_set_expr_location.
3386
3387 2009-10-27  Wei Guozhi  <carrot@google.com>
3388
3389         PR target/41705
3390         * target.h (have_conditional_execution): Add a new target hook
3391         function.
3392         * target-def.h (TARGET_HAVE_CONDITIONAL_EXECUTION): Likewise.
3393         * targhooks.h (default_have_conditional_execution): Likewise.
3394         * targhooks.c (default_have_conditional_execution): Likewise.
3395         * doc/tm.texi (TARGET_HAVE_CONDITIONAL_EXECUTION): Document it.
3396         * config/arm/arm.c (TARGET_HAVE_CONDITIONAL_EXECUTION): Define it.
3397         (arm_have_conditional_execution): New function.
3398         * ifcvt.c (noce_process_if_block, find_if_header,
3399         cond_exec_find_if_block, dead_or_predicable): Change the usage of
3400         macro HAVE_conditional_execution to a target hook call.
3401         * recog.c (peephole2_optimize): Likewise.
3402         * sched-rgn.c (add_branch_dependences): Likewise.
3403         * final.c (asm_insn_count, final_scan_insn): Likewise.
3404         * bb-reorder.c (HAVE_conditional_execution): Remove it.
3405
3406 2009-10-26  Ben Elliston  <bje@au.ibm.com>
3407             Michael Meissner  <meissner@linux.vnet.ibm.com>
3408             Ulrich Weigand  <uweigand@de.ibm.com>
3409
3410         * config.gcc (spu-*-elf*): Add spu_cache.h to extra_headers.
3411         * config/spu/spu_cache.h: New file.
3412
3413         * config/spu/cachemgr.c: New file.
3414         * config/spu/cache.S: New file.
3415
3416         * config/spu/spu.h (ASM_OUTPUT_SYMBOL_REF): Define.
3417         (ADDR_SPACE_EA): Define.
3418         (TARGET_ADDR_SPACE_KEYWORDS): Define.
3419         * config/spu/spu.c (EAmode): New macro.
3420         (TARGET_ADDR_SPACE_POINTER_MODE): Define.
3421         (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
3422         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
3423         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
3424         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
3425         (TARGET_ADDR_SPACE_CONVERT): Likewise.
3426         (TARGET_ASM_SELECT_SECTION): Likewise.
3427         (TARGET_ASM_UNIQUE_SECTION): Likewise.
3428         (TARGET_ASM_UNALIGNED_SI_OP): Likewise.
3429         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
3430         (ea_symbol_ref): New function.
3431         (spu_legitimate_constant_p): Handle __ea qualified addresses.
3432         (spu_addr_space_legitimate_address_p): New function.
3433         (spu_addr_space_legitimize_address): Likewise.
3434         (cache_fetch): New global.