diff options
author | Zolotukhin Michael <michael.v.zolotukhin@gmail.com> | 2011-11-14 17:28:11 +0000 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2011-11-14 17:28:11 +0000 |
commit | 38877e985111f3a7434aa9583f0789bc157b2993 (patch) | |
tree | a056d217a6b6535a0003656585756c9e14fbf24c /gcc/cgraph.h | |
parent | f8acdd3c52e497e7139cc19bfa99ca7ac3331850 (diff) | |
download | gcc-38877e985111f3a7434aa9583f0789bc157b2993.zip gcc-38877e985111f3a7434aa9583f0789bc157b2993.tar.gz gcc-38877e985111f3a7434aa9583f0789bc157b2993.tar.bz2 |
sw-1.c: Force rep;movsb.
* gcc.target/i386/sw-1.c: Force rep;movsb.
* config/i386/i386.h (processor_costs): Add second dimension to
stringop_algs array.
* config/i386/i386.c (cost models): Initialize second dimension of
stringop_algs arrays.
(core_cost): New costs based on generic64 costs with updated stringop
values.
(promote_duplicated_reg): Add support for vector modes, add
declaration.
(promote_duplicated_reg_to_size): Likewise.
(processor_target): Set core costs for core variants.
(expand_set_or_movmem_via_loop_with_iter): New function.
(expand_set_or_movmem_via_loop): Enable reuse of the same iters in
different loops, produced by this function.
(emit_strset): New function.
(expand_movmem_epilogue): Add epilogue generation for bigger sizes,
use SSE-moves where possible.
(expand_setmem_epilogue): Likewise.
(expand_movmem_prologue): Likewise for prologue.
(expand_setmem_prologue): Likewise.
(expand_constant_movmem_prologue): Likewise.
(expand_constant_setmem_prologue): Likewise.
(decide_alg): Add new argument align_unknown. Fix algorithm of
strategy selection if TARGET_INLINE_ALL_STRINGOPS is set; Skip sse_loop
(decide_alignment): Update desired alignment according to chosen move
mode.
(ix86_expand_movmem): Change unrolled_loop strategy to use SSE-moves.
(ix86_expand_setmem): Likewise.
(ix86_slow_unaligned_access): Implementation of new hook
slow_unaligned_access.
* config/i386/i386.md (strset): Enable half-SSE moves.
* config/i386/sse.md (vec_dupv4si): Add expand for vec_dupv4si.
(vec_dupv2di): Add expand for vec_dupv2di.
Co-Authored-By: Jan Hubicka <jh@suse.cz>
From-SVN: r181357
Diffstat (limited to 'gcc/cgraph.h')
-rw-r--r-- | gcc/cgraph.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/cgraph.h b/gcc/cgraph.h index 9e98ce9..834d3d4 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -641,6 +641,7 @@ void debug_varpool_node_set (varpool_node_set); void free_varpool_node_set (varpool_node_set); void ipa_discover_readonly_nonaddressable_vars (void); bool cgraph_comdat_can_be_unshared_p (struct cgraph_node *); +bool varpool_externally_visible_p (struct varpool_node *, bool); /* In predict.c */ bool cgraph_maybe_hot_edge_p (struct cgraph_edge *e); @@ -681,6 +682,7 @@ bool const_value_known_p (tree); bool varpool_for_node_and_aliases (struct varpool_node *, bool (*) (struct varpool_node *, void *), void *, bool); +void varpool_add_new_variable (tree); /* Walk all reachable static variables. */ #define FOR_EACH_STATIC_VARIABLE(node) \ |