Displaying 9 results from an estimated 9 matches for "algabra".
2016 May 18
4
Working on FP SCEV Analysis
...tion is to model the floating point IV in SCEV rather than find a more
powerful way of converting the IV to an integer that models the non-integer
values taken on by the IV. As an example, if the use case is the following
code with appropriate flags to relax IEEE semantics so this looks like
normal algabra etc:
for (float f = 0.01f; f < 1.0f; f += 0.01f)
...
I'd rather see us cleverly turn it into:
float f = 0.01f;
for (int i = 1; i < 100; i += 1, f += 0.01f)
...
(or whatever the transform would be, I've not spent lots of time thinking
about the exact way to map this o...
2016 May 18
4
Working on FP SCEV Analysis
...ing point IV in SCEV rather than
> find a more powerful way of converting the IV to an integer that models
> > the non-integer values taken on by the IV. As an example, if the use
> case is the following code with appropriate flags to relax IEEE
> semantics so this looks like normal algabra etc:
>
> > for (float f = 0.01f; f < 1.0f; f += 0.01f) ç **A**
>
> ...
>
> > I'd rather see us cleverly turn it into:
>
> > float f = 0.01f;
>
> > for (int i = 1; i < 100; i += 1, f += 0.01f) ç **B**
>
> I can later try to enhance IndVar...
2016 May 19
3
Working on FP SCEV Analysis
...is to model the floating point IV in SCEV rather than
find a more powerful way of converting the IV to an integer that models
> the non-integer values taken on by the IV. As an example, if the use
case is the following code with appropriate flags to relax IEEE
semantics so this looks like normal algabra etc:
> for (float f = 0.01f; f < 1.0f; f += 0.01f) ç **A**
...
> I'd rather see us cleverly turn it into:
> float f = 0.01f;
> for (int i = 1; i < 100; i += 1, f += 0.01f) ç **B**
I can later try to enhance IndVarSimplify::handleFloatingPointIV() in
order to convert**A**...
2016 May 20
5
Working on FP SCEV Analysis
...is to model the floating point IV in SCEV rather than
find a more powerful way of converting the IV to an integer that models
> the non-integer values taken on by the IV. As an example, if the use
case is the following code with appropriate flags to relax IEEE
semantics so this looks like normal algabra etc:
> for (float f = 0.01f; f < 1.0f; f += 0.01f) ç **A**
...
> I'd rather see us cleverly turn it into:
> float f = 0.01f;
> for (int i = 1; i < 100; i += 1, f += 0.01f) ç **B**
I can later try to enhance IndVarSimplify::handleFloatingPointIV() in
order to convert**A**...
2019 Sep 19
2
ScalarEvolution invariants around wrapping flags
> 1. Callers are expected to not engage in speculation. ScalarEvolution
> itself must only create expressions it knows hold in all cases.
This is correct. There is some more relevant text in
ScalarEvolution::isSCEVExprNeverPoison. And you're right, this is
quite restrictive.
> Long term, I think that it would be cleaner to rework this so that all of the SCEV's are immutable
2016 May 20
0
Working on FP SCEV Analysis
...ting point IV in SCEV rather than
> find a more powerful way of converting the IV to an integer that models
> > the non-integer values taken on by the IV. As an example, if the use
> case is the following code with appropriate flags to relax IEEE
> semantics so this looks like normal algabra etc:
>
> > for (float f = 0.01f; f < 1.0f; f += 0.01f) ç **A**
>
> ...
>
> > I'd rather see us cleverly turn it into:
>
> > float f = 0.01f;
>
> > for (int i = 1; i < 100; i += 1, f += 0.01f) ç **B**
>
> I can later try to enhance IndV...
2016 May 24
1
Working on FP SCEV Analysis
...ating point IV in SCEV rather than
> find a more powerful way of converting the IV to an integer that models
>> the non-integer values taken on by the IV. As an example, if the use
> case is the following code with appropriate flags to relax IEEE
> semantics so this looks like normal algabra etc:
>
>> for (float f = 0.01f; f < 1.0f; f += 0.01f) ç **A**
>
> ...
>
>> I'd rather see us cleverly turn it into:
>
>> float f = 0.01f;
>
>> for (int i = 1; i < 100; i += 1, f += 0.01f) ç **B**
>
> I can later try to enhance IndVarSimplify...
2019 Sep 19
2
ScalarEvolution invariants around wrapping flags
...ail/llvm-dev/2016-September/105108.html
>> and http://lists.llvm.org/pipermail/llvm-dev/2017-August/116324.html
>>
>> +Andrew Trick
>>
>> — Sanjoy
> I was never able to reconcile integrating nsw/nuw flags into SCEV. They violate the spirit of SCEV, in the sense that algabraically equivalent expressions must be uniquely identified, and that the the order that expressions are evaluated should not affect the outcome.
>
> My understanding matches Hal's, that we can imbue AddRec's with flags because they're already tied to the IR. It's usually incorre...
2016 May 16
6
Working on FP SCEV Analysis
[+CC Andy]
Hi Elena,
I don't have any fundamental issues with teaching SCEV about floating
point types, but given this will be a major change, I think a high
level roadmap should be discussed on llvm-dev before we start
reviewing and committing changes.
Here are some issues that I think are worth discussing:
- Core motivation: why do we even care about optimizing floating
point