search for: simplifiedscevs

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; >&gt...
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); >>&gt...
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; >&gt...
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); >>&gt...
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