diff options
Diffstat (limited to 'gcc/tree-vect-data-refs.c')
-rw-r--r-- | gcc/tree-vect-data-refs.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c index c3db22f..755b5a1 100644 --- a/gcc/tree-vect-data-refs.c +++ b/gcc/tree-vect-data-refs.c @@ -3897,6 +3897,41 @@ vect_get_new_vect_var (tree type, enum vect_var_kind var_kind, const char *name) return new_vect_var; } +/* Like vect_get_new_vect_var but return an SSA name. */ + +tree +vect_get_new_ssa_name (tree type, enum vect_var_kind var_kind, const char *name) +{ + const char *prefix; + tree new_vect_var; + + switch (var_kind) + { + case vect_simple_var: + prefix = "vect"; + break; + case vect_scalar_var: + prefix = "stmp"; + break; + case vect_pointer_var: + prefix = "vectp"; + break; + default: + gcc_unreachable (); + } + + if (name) + { + char* tmp = concat (prefix, "_", name, NULL); + new_vect_var = make_temp_ssa_name (type, NULL, tmp); + free (tmp); + } + else + new_vect_var = make_temp_ssa_name (type, NULL, prefix); + + return new_vect_var; +} + /* Duplicate ptr info and set alignment/misaligment on NAME from DR. */ static void |