Commit 8e1d2e82 by Richard Henderson Committed by Richard Henderson

re PR tree-optimization/19042 (Complex types are not SRA all the time.)

        PR tree-opt/19042
        * tree-sra.c (decide_block_copy): Force use_block_copy false
        for complex values.

From-SVN: r92782
parent 78e0d62b
2004-12-31 Richard Henderson <rth@redhat.com> 2004-12-31 Richard Henderson <rth@redhat.com>
PR tree-opt/19042
* tree-sra.c (decide_block_copy): Force use_block_copy false
for complex values.
2004-12-31 Richard Henderson <rth@redhat.com>
PR middle-end/17799 PR middle-end/17799
* function.c (use_register_for_decl): Check DECL_IGNORED_P instead * function.c (use_register_for_decl): Check DECL_IGNORED_P instead
of DECL_ARTIFICIAL. of DECL_ARTIFICIAL.
......
...@@ -1293,10 +1293,15 @@ decide_block_copy (struct sra_elt *elt) ...@@ -1293,10 +1293,15 @@ decide_block_copy (struct sra_elt *elt)
tree size_tree = TYPE_SIZE_UNIT (elt->type); tree size_tree = TYPE_SIZE_UNIT (elt->type);
bool use_block_copy = true; bool use_block_copy = true;
/* Tradeoffs for COMPLEX types pretty much always make it better
to go ahead and split the components. */
if (TREE_CODE (elt->type) == COMPLEX_TYPE)
use_block_copy = false;
/* Don't bother trying to figure out the rest if the structure is /* Don't bother trying to figure out the rest if the structure is
so large we can't do easy arithmetic. This also forces block so large we can't do easy arithmetic. This also forces block
copies for variable sized structures. */ copies for variable sized structures. */
if (host_integerp (size_tree, 1)) else if (host_integerp (size_tree, 1))
{ {
unsigned HOST_WIDE_INT full_size, inst_size = 0; unsigned HOST_WIDE_INT full_size, inst_size = 0;
unsigned int inst_count; unsigned int inst_count;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment