search for: userinst

Displaying 5 results from an estimated 5 matches for "userinst".

Did you mean: useinst
2020 Jun 09
2
LoopStrengthReduction generates false code
...10, 0) IV={0,+,1}<nuw><nsw><%while.body> IV Chain#1 Inc: ( %i.010 = phi i32 [ 0, %entry ], [ %inc, %while.body ]) IV+1 Chain: %cmp11 = icmp eq i32 %i.010, 0 Cost: 0 LSR has identified the following interesting factors and types: *8 LSR is examining the following fixup sites: UserInst=%cmp11, OperandValToReplace=%i.010 UserInst=%0, OperandValToReplace=%arrayidx LSR found 2 uses: LSR is examining the following uses: LSR Use: Kind=ICmpZero, Offsets={0}, widest fixup type: i32 reg({0,+,-1}<nw><%while.body>) LSR Use: Kind=Address of i32 in addrspace(0), Offsets...
2020 Jun 09
2
LoopStrengthReduction generates false code
...while.body> >> IV Chain#1 Inc: ( %i.010 = phi i32 [ 0, %entry ], [ %inc, %while.body ]) IV+1 >> Chain: %cmp11 = icmp eq i32 %i.010, 0 Cost: 0 >> LSR has identified the following interesting factors and types: *8 >> LSR is examining the following fixup sites: >> UserInst=%cmp11, OperandValToReplace=%i.010 >> UserInst=%0, OperandValToReplace=%arrayidx >> LSR found 2 uses: >> LSR is examining the following uses: >> LSR Use: Kind=ICmpZero, Offsets={0}, widest fixup type: i32 >> reg({0,+,-1}<nw><%while.body>) >> LSR...
2020 Jun 10
2
LoopStrengthReduction generates false code
...n#1 Inc: ( %i.010 = phi i32 [ 0, %entry ], [ %inc, %while.body ]) IV+1 >>>> Chain: %cmp11 = icmp eq i32 %i.010, 0 Cost: 0 >>>> LSR has identified the following interesting factors and types: *8 >>>> LSR is examining the following fixup sites: >>>> UserInst=%cmp11, OperandValToReplace=%i.010 >>>> UserInst=%0, OperandValToReplace=%arrayidx >>>> LSR found 2 uses: >>>> LSR is examining the following uses: >>>> LSR Use: Kind=ICmpZero, Offsets={0}, widest fixup type: i32 >>>> reg({0,+,-1}<nw&...
2013 Oct 31
2
[LLVMdev] The order of GVN and IndVarSimplify
...than just N or i, so we can consider the register // requirements for both N and i at the same time. Limiting this code to // equality icmps is not a problem because all interesting loops use // equality icmps, thanks to IndVarSimplify. if (ICmpInst *CI = dyn_cast<ICmpInst>(LF.UserInst)) if (CI->isEquality()) { and this is happening for the first loop but not the second. The reason is that the second loop still has two loads of *l by the time IndVarSimplify is run; one for the precondition of the rotated loop and one for the loop exit. This means that IndVarSimplify c...
2013 Nov 05
0
[LLVMdev] The order of GVN and IndVarSimplify
..., so we can consider the register > // requirements for both N and i at the same time. Limiting this code to > // equality icmps is not a problem because all interesting loops use > // equality icmps, thanks to IndVarSimplify. > if (ICmpInst *CI = dyn_cast<ICmpInst>(LF.UserInst)) > if (CI->isEquality()) { > > and this is happening for the first loop but not the second. The reason > is that the second loop still has two loads of *l by the time IndVarSimplify > is run; one for the precondition of the rotated loop and one for the loop > exit. Thi...