Displaying 7 results from an estimated 7 matches for "simplifiedscevs".
2018 Feb 26
2
[SCEV] Inconsistent SCEV formation for zext
...mplified versions? Then we could do something like:
I may be wrong but I think caching is not an issue in itself, but caching in the presence of self-recursion is.
>> getZeroExtendExpr(S) {
>> if (AlreadyPresent = UniqueSCEVs.find(kZeroExtend, S) {
>> if (Simplified = SimplifiedSCEVs.find(AlreadyPresent)) {
>> return Simplified;
>> }
>> return AlreadyPresent;
>> }
>> ...
>> // We discovered zext(s) can be simplified to t
>> UniqueSCEVs.insert({kZeroExtend, S}, t);
>> SimplifiedSCEVs[s] = t;
>>...
2018 Mar 13
2
[SCEV] Inconsistent SCEV formation for zext
...ould do something like:
>
> I may be wrong but I think caching is not an issue in itself, but caching in the presence of self-recursion is.
>
>
>>> getZeroExtendExpr(S) {
>>> if (AlreadyPresent = UniqueSCEVs.find(kZeroExtend, S) {
>>> if (Simplified = SimplifiedSCEVs.find(AlreadyPresent)) {
>>> return Simplified;
>>> }
>>> return AlreadyPresent;
>>> }
>
>>> ...
>>> // We discovered zext(s) can be simplified to t
>>> UniqueSCEVs.insert({kZeroExtend, S}, t);
>>>...
2018 Mar 12
0
[SCEV] Inconsistent SCEV formation for zext
...mplified versions? Then we could do something like:
I may be wrong but I think caching is not an issue in itself, but caching in the presence of self-recursion is.
>> getZeroExtendExpr(S) {
>> if (AlreadyPresent = UniqueSCEVs.find(kZeroExtend, S) {
>> if (Simplified = SimplifiedSCEVs.find(AlreadyPresent)) {
>> return Simplified;
>> }
>> return AlreadyPresent;
>> }
>> ...
>> // We discovered zext(s) can be simplified to t
>> UniqueSCEVs.insert({kZeroExtend, S}, t);
>> SimplifiedSCEVs[s] = t;
>>...
2018 Mar 13
0
[SCEV] Inconsistent SCEV formation for zext
...ould do something like:
>
> I may be wrong but I think caching is not an issue in itself, but caching in the presence of self-recursion is.
>
>
>>> getZeroExtendExpr(S) {
>>> if (AlreadyPresent = UniqueSCEVs.find(kZeroExtend, S) {
>>> if (Simplified = SimplifiedSCEVs.find(AlreadyPresent)) {
>>> return Simplified;
>>> }
>>> return AlreadyPresent;
>>> }
>
>>> ...
>>> // We discovered zext(s) can be simplified to t
>>> UniqueSCEVs.insert({kZeroExtend, S}, t);
>>>...
2018 Feb 20
0
[SCEV] Inconsistent SCEV formation for zext
...ms
created by caching; but if there is no way out of adding another
cache, how about adding a cache that maps SCEV expressions to their
simplified versions? Then we could do something like:
getZeroExtendExpr(S) {
if (AlreadyPresent = UniqueSCEVs.find(kZeroExtend, S) {
if (Simplified = SimplifiedSCEVs.find(AlreadyPresent)) {
return Simplified;
}
return AlreadyPresent;
}
...
// We discovered zext(s) can be simplified to t
UniqueSCEVs.insert({kZeroExtend, S}, t);
SimplifiedSCEVs[s] = t;
return t;
}
> The first level of caching is the 'PendingC...
2018 Mar 13
1
[SCEV] Inconsistent SCEV formation for zext
...>
>> I may be wrong but I think caching is not an issue in itself, but caching in the presence of self-recursion is.
>>
>>
>>>> getZeroExtendExpr(S) {
>>>> if (AlreadyPresent = UniqueSCEVs.find(kZeroExtend, S) {
>>>> if (Simplified = SimplifiedSCEVs.find(AlreadyPresent)) {
>>>> return Simplified;
>>>> }
>>>> return AlreadyPresent;
>>>> }
>>
>>>> ...
>>>> // We discovered zext(s) can be simplified to t
>>>> UniqueSCEVs.insert({...
2018 Feb 11
2
[SCEV] Inconsistent SCEV formation for zext
Hi Sanjoy,
Thanks for investigating the issue!
I am more interested in getting the underlying problem fixed rather than making this particular test case work. I think I have more test cases where this problem crops up. I would any day prefer consistent results over compile time savings which can lead to inconsistencies. These inconsistencies require significant developer time to analyze and fix