OSDN Git Service

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