Displaying 3 results from an estimated 3 matches for "glob_const".
2019 Aug 20
2
missing simplification in ScalarEvolution?
Hi,
I have this small test case-
%struct1 = type { i32, i32 }
@glob_const = internal constant [4 x %struct1] [%struct1 { i32 4, i32 5 }, %struct1 { i32 8, i32 9 }, %struct1 { i32 16, i32 0 }, %struct1 { i32 32, i32 10 }], align 16
define void @foo() {
entry:
br label %loop
loop: ; preds = %loop, %entry
%iv = phi %struct1...
2019 Aug 21
2
missing simplification in ScalarEvolution?
...reduced case, and see what happens. Not sure this is your problem, but I've been bitten by this before with hand reduced examples...
Philip
On 8/20/19 3:43 PM, Chawla, Pankaj via llvm-dev wrote:
> Hi,
>
> I have this small test case-
>
> %struct1 = type { i32, i32 }
>
> @glob_const = internal constant [4 x %struct1] [%struct1 { i32 4, i32
> 5 }, %struct1 { i32 8, i32 9 }, %struct1 { i32 16, i32 0 }, %struct1 {
> i32 32, i32 10 }], align 16
>
> define void @foo() {
> entry:
> br label %loop
>
> loop: ; p...
2019 Aug 26
2
missing simplification in ScalarEvolution?
...at intel.com>
Cc: Philip Reames <listmail at philipreames.com>; llvm-dev at lists.llvm.org
Subject: Re: [llvm-dev] missing simplification in ScalarEvolution?
I didn't step through this in a debugger, but I suspect we could fix the problem by:
1. Teaching SCEV to infer nuw for (32 + @glob_const)<nsw> (if legal) 2. Generalize ScalarEvolution::isKnownPredicateViaNoOverflow to work with this case
That should fold the umax and give us a more precise trip count.
-- Sanjoy
On Tue, Aug 20, 2019 at 5:36 PM Chawla, Pankaj via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> T...