Add TODO_update_ssa for SLP BB vectorization (PR tree-optimization/91885).
2019-09-26 Martin Liska <mliska@suse.cz> PR tree-optimization/91885 * tree-vectorizer.c (try_vectorize_loop_1): Add TODO_update_ssa_only_virtuals similarly to what slp pass does. 2019-09-26 Martin Liska <mliska@suse.cz> PR tree-optimization/91885 * gcc.dg/pr91885.c: New test. From-SVN: r276141
This commit is contained in:
parent
835d50c66a
commit
704bc4bb36
4 changed files with 60 additions and 1 deletions
|
@ -1,3 +1,10 @@
|
|||
2019-09-26 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR tree-optimization/91885
|
||||
* tree-vectorizer.c (try_vectorize_loop_1):
|
||||
Add TODO_update_ssa_only_virtuals similarly to what slp
|
||||
pass does.
|
||||
|
||||
2019-09-26 Richard Sandiford <richard.sandiford@arm.com>
|
||||
|
||||
* config/aarch64/aarch64.c (aarch64_rtx_costs): Use
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2019-09-26 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR tree-optimization/91885
|
||||
* gcc.dg/pr91885.c: New test.
|
||||
|
||||
2019-09-25 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR c++/91877 - ICE with converting member of packed struct.
|
||||
|
|
47
gcc/testsuite/gcc.dg/pr91885.c
Normal file
47
gcc/testsuite/gcc.dg/pr91885.c
Normal file
|
@ -0,0 +1,47 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O3 -fprofile-generate" } */
|
||||
/* { dg-require-profiling "-fprofile-generate" } */
|
||||
|
||||
typedef signed long int __int64_t;
|
||||
typedef unsigned long int __uint64_t;
|
||||
typedef __int64_t int64_t;
|
||||
typedef __uint64_t uint64_t;
|
||||
inline void
|
||||
BLI_endian_switch_int64 (int64_t *val)
|
||||
{
|
||||
uint64_t tval = *val;
|
||||
*val = ((tval >> 56)) | ((tval << 40) & 0x00ff000000000000ll)
|
||||
| ((tval << 24) & 0x0000ff0000000000ll)
|
||||
| ((tval << 8) & 0x000000ff00000000ll)
|
||||
| ((tval >> 8) & 0x00000000ff000000ll)
|
||||
| ((tval >> 24) & 0x0000000000ff0000ll)
|
||||
| ((tval >> 40) & 0x000000000000ff00ll) | ((tval << 56));
|
||||
}
|
||||
typedef struct anim_index_entry
|
||||
{
|
||||
unsigned long long seek_pos_dts;
|
||||
unsigned long long pts;
|
||||
} anim_index_entry;
|
||||
extern struct anim_index_entry *
|
||||
MEM_callocN (int);
|
||||
struct anim_index
|
||||
{
|
||||
int num_entries;
|
||||
struct anim_index_entry *entries;
|
||||
};
|
||||
struct anim_index *
|
||||
IMB_indexer_open (const char *name)
|
||||
{
|
||||
char header[13];
|
||||
struct anim_index *idx;
|
||||
int i;
|
||||
idx->entries = MEM_callocN (8);
|
||||
if (((1 == 0) != (header[8] == 'V')))
|
||||
{
|
||||
for (i = 0; i < idx->num_entries; i++)
|
||||
{
|
||||
BLI_endian_switch_int64 ((int64_t *) &idx->entries[i].seek_pos_dts);
|
||||
BLI_endian_switch_int64 ((int64_t *) &idx->entries[i].pts);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -943,7 +943,7 @@ try_vectorize_loop_1 (hash_table<simduid_to_vf> *&simduid_to_vf_htab,
|
|||
fold_loop_internal_call (loop_vectorized_call,
|
||||
boolean_true_node);
|
||||
loop_vectorized_call = NULL;
|
||||
ret |= TODO_cleanup_cfg;
|
||||
ret |= TODO_cleanup_cfg | TODO_update_ssa_only_virtuals;
|
||||
}
|
||||
}
|
||||
/* If outer loop vectorization fails for LOOP_VECTORIZED guarded
|
||||
|
|
Loading…
Add table
Reference in a new issue