OSDN Git Service

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