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