Displaying 4 results from an estimated 4 matches for "storelegal".
2018 Sep 12
3
Generalizing load/store promotion in LICM
...Proposal A - Use predicated stores in loop exits
The basic idea is that we don't worry about solving the legality
question above, and just insert a store which is predicated on a
condition which is true exactly when the original store ran. In pseudo
code, this looks something like:
bool StoreLegal = false;
int LocalCount = g_count;
for (int = 0; i < N; i++)
if (a[i] == 0) {
LocalCount++;
StoreLegal = true;
}
if (StoreLegal) g_count = LocalCount;
There are two obvious concerns here:
1. The predicated store might be expensive in practice - true for most
current archit...
2018 Sep 13
3
Generalizing load/store promotion in LICM
...>
> The basic idea is that we don't worry about solving the legality
> question above, and just insert a store which is predicated on a
> condition which is true exactly when the original store ran. In
> pseudo code, this looks something like:
>
> bool StoreLegal = false;
> int LocalCount = g_count;
> for (int = 0; i < N; i++)
> if (a[i] == 0) {
> LocalCount++;
> StoreLegal = true;
> }
> if (StoreLegal) g_count = LocalCount;
>
> There are two obvious concerns here:
>
> 1. T...
2018 Sep 14
2
Generalizing load/store promotion in LICM
....
Proposal A - Use predicated stores in loop exits
The basic idea is that we don't worry about solving the legality question above, and just insert a store which is predicated on a condition which is true exactly when the original store ran. In pseudo code, this looks something like:
bool StoreLegal = false;
int LocalCount = g_count;
for (int = 0; i < N; i++)
if (a[i] == 0) {
LocalCount++;
StoreLegal = true;
}
if (StoreLegal) g_count = LocalCount;
There are two obvious concerns here:
1. The predicated store might be expensive in practice - true for most current architecture...
2018 Sep 18
1
Generalizing load/store promotion in LICM
...idea is that we don't worry about solving the legality
>>> question above, and just insert a store which is predicated on a condition
>>> which is true exactly when the original store ran. In pseudo code, this
>>> looks something like:
>>>
>>> bool StoreLegal = false;
>>> int LocalCount = g_count;
>>> for (int = 0; i < N; i++)
>>> if (a[i] == 0) {
>>> LocalCount++;
>>> StoreLegal = true;
>>> }
>>> if (StoreLegal) g_count = LocalCount;
>>>
>>> There are two ob...