Displaying 6 results from an estimated 6 matches for "looppre".
Did you mean:
loadpre
2018 Sep 21
2
Comparing Clang and GCC: only clang stores updated value in each iteration.
...e original loop looks like?
No, not really, the reduced one just shows the difference between gcc
and clang. There were some variations to this, but I chose this since it
gave a very small output. Sorry if it was confusing.
>
> If so, then yes, this is probably a case where the aggressive LoopPRE
> mentioned in the other thread that Eli linked to would be useful.
> Once we'd done the PRE, then everything else should collapse.
Thanks for the link, it's good to know this issue is recognized. If I
understand it correctly, the reason clang is storing in each iteration
is due...
2018 Sep 14
2
Generalizing load/store promotion in LICM
...lines with little problem.
One way of looking at this load specific transform is as an extreme form of PRE (partial redundancy elimination). Our current PRE implementation doesn't handle cases this complicated.
It occurred to my later that simply framing the new transform as a separate pass (LoopPRE) and using the same AST + SSA construction approach would be straight forward. So, if folks think that having an aggressive form of load PRE in LICM is going a bit too far, it'd be easy to represent as an optional separate pass. I'd still prefer having LICM contain the logic though.
Tho...
2018 Sep 20
3
Comparing Clang and GCC: only clang stores updated value in each iteration.
Hi,
I have a benchmark (mcf) that is currently slower when compiled with
clang compared to gcc 8 (~10%). It seems that a hot loop has a few
differences, where one interesting one is that while clang stores an
incremented value in each iteration, gcc waits and just stores the final
value just once after the loop. The value is a global variable.
I wonder if this is something clang does not do
2018 Sep 13
3
Generalizing load/store promotion in LICM
...; One way of looking at this load specific transform is as an
> extreme form of PRE (partial redundancy elimination). Our current
> PRE implementation doesn't handle cases this complicated.
>
It occurred to my later that simply framing the new transform as a
separate pass (LoopPRE) and using the same AST + SSA construction
approach would be straight forward. So, if folks think that having an
aggressive form of load PRE in LICM is going a bit too far, it'd be easy
to represent as an optional separate pass. I'd still prefer having LICM
contain the logic though.
&...
2018 Sep 18
1
Generalizing load/store promotion in LICM
...oad specific transform is as an extreme form
>>> of PRE (partial redundancy elimination). Our current PRE implementation
>>> doesn't handle cases this complicated.
>>>
>> It occurred to my later that simply framing the new transform as a
>> separate pass (LoopPRE) and using the same AST + SSA construction approach
>> would be straight forward. So, if folks think that having an aggressive
>> form of load PRE in LICM is going a bit too far, it'd be easy to represent
>> as an optional separate pass. I'd still prefer having LICM cont...
2018 Sep 12
3
Generalizing load/store promotion in LICM
I'm thinking about making some semi radical changes to load store
promotion works in LICM, and figured it would be a good idea to get buy
in before I actually started writing code. :)
TLDR: legality of sinking stores to exits is hard, can we separate load
handling into a super aggressive form of PRE, and use predicated stores
to avoid solving legality question?
Background
We've