mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-10-25 10:27:04 +00:00
Corrects a problem where we reply exclusively of GEPs to drive
analysis. Better is to look for cases with useful GEPs and use them when possible. When a pair of useful GEPs is not available, use the raw SCEVs directly. This approach supports better analysis of pointer dereferencing. In parallel, all the test cases are updated appropriately. Cases where we have a store to *B++ can now be analyzed! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168474 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -19,7 +19,7 @@ entry:
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - input [* *|<]!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - output [= =|<]!
|
||||
|
||||
for.cond1.preheader: ; preds = %entry, %for.inc8
|
||||
%B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc8 ]
|
||||
@@ -71,7 +71,7 @@ entry:
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - input [* *|<]!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - output [= =|<]!
|
||||
|
||||
for.cond1.preheader: ; preds = %entry, %for.inc9
|
||||
%B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc9 ]
|
||||
@@ -124,7 +124,7 @@ entry:
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - input [* *|<]!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - output [= =|<]!
|
||||
|
||||
for.cond1.preheader: ; preds = %entry, %for.inc9
|
||||
%B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc9 ]
|
||||
@@ -177,7 +177,7 @@ entry:
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - input [* *|<]!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - output [= =|<]!
|
||||
|
||||
for.cond1.preheader: ; preds = %entry, %for.inc7
|
||||
%B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc7 ]
|
||||
@@ -228,7 +228,7 @@ entry:
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - input [* *|<]!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - output [= =|<]!
|
||||
|
||||
for.cond1.preheader: ; preds = %entry, %for.inc17
|
||||
%B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc17 ]
|
||||
@@ -289,7 +289,7 @@ entry:
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - input [* *|<]!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - output [= =|<]!
|
||||
|
||||
for.cond1.preheader: ; preds = %entry, %for.inc17
|
||||
%B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc17 ]
|
||||
@@ -351,7 +351,7 @@ entry:
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - input [* *|<]!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - output [* *|<]!
|
||||
|
||||
for.cond1.preheader.preheader: ; preds = %entry
|
||||
br label %for.cond1.preheader
|
||||
@@ -422,7 +422,7 @@ entry:
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - input [* *|<]!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - output [* *|<]!
|
||||
|
||||
for.cond1.preheader.preheader: ; preds = %entry
|
||||
br label %for.cond1.preheader
|
||||
@@ -505,7 +505,7 @@ entry:
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - input [* *|<]!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - output [* *|<]!
|
||||
|
||||
for.cond1.preheader.preheader: ; preds = %entry
|
||||
br label %for.cond1.preheader
|
||||
@@ -583,7 +583,7 @@ entry:
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - input [* *|<]!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - confused!
|
||||
; CHECK: da analyze - output [* *|<]!
|
||||
|
||||
for.cond1.preheader.preheader: ; preds = %entry
|
||||
br label %for.cond1.preheader
|
||||
|
||||
Reference in New Issue
Block a user