Re: CSE pass prevents loop-invariant motion

2015-09-25 Thread Jeff Law
On 09/24/2015 12:29 AM, Robin Dapp wrote: On 09/15/2015 05:25 PM, Jeff Law wrote: On 09/15/2015 06:11 AM, Robin Dapp wrote: Hi, recently, I came across a problem that keeps a load instruction in a loop although it is loop-invariant. [..] You might want to check your costing model -- cprop is

Re: CSE pass prevents loop-invariant motion

2015-09-23 Thread Robin Dapp
On 09/15/2015 05:25 PM, Jeff Law wrote: > On 09/15/2015 06:11 AM, Robin Dapp wrote: >> Hi, >> >> recently, I came across a problem that keeps a load instruction in a >> loop although it is loop-invariant. [..] > You might want to check your costing model -- cprop is supposed to look > at costs to h

Re: CSE pass prevents loop-invariant motion

2015-09-15 Thread Jeff Law
On 09/15/2015 06:11 AM, Robin Dapp wrote: Hi, recently, I came across a problem that keeps a load instruction in a loop although it is loop-invariant. A simple example is: #include #define SZ 256 int a[SZ], b[SZ], c[SZ]; int main() { int i; for (i = 0; i < SZ; i++) { a[i] = b[i]

Re: CSE pass prevents loop-invariant motion

2015-09-15 Thread Richard Biener
On Tue, Sep 15, 2015 at 2:11 PM, Robin Dapp wrote: > Hi, > > recently, I came across a problem that keeps a load instruction in a > loop although it is loop-invariant. > > A simple example is: > > #include > > #define SZ 256 > int a[SZ], b[SZ], c[SZ]; > > int main() { > > int i; > for (i = 0;

CSE pass prevents loop-invariant motion

2015-09-15 Thread Robin Dapp
Hi, recently, I came across a problem that keeps a load instruction in a loop although it is loop-invariant. A simple example is: #include #define SZ 256 int a[SZ], b[SZ], c[SZ]; int main() { int i; for (i = 0; i < SZ; i++) { a[i] = b[i] + c[i]; } printf("%d\n", a[0]); } The re