[llvm-dev] Using Scalar Evolution to Identify Expressions Evolving in terms of Loop induction variables (original) (raw)
Jatin Bhateja via llvm-dev llvm-dev at lists.llvm.org
Thu Nov 30 21:44:57 PST 2017
- Previous message: [llvm-dev] Using Scalar Evolution to Identify Expressions Evolving in terms of Loop induction variables
- Next message: [llvm-dev] Some strange i64 behavior with arm 32bit. (Raspberry Pi)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi Hashim,
Scalar evolution determines evolution of scalar in terms of expression chain driving it.
Try dumping the detailed log using opt -analyze -scalar-evolution <.ll> -S , and look for LoopDispositions corresponding to different expression which shows variance characteristics of a particular expression w.r.t loop i.e. [computable/variant/invariant].
Thanks
On Fri, Dec 1, 2017 at 10:20 AM, Sharif, Hashim via llvm-dev < llvm-dev at lists.llvm.org> wrote:
Hi, I am using Scalar Evolution to extract access expressions (for load and store instructions) in terms of the loop induction variables. I observe that the Scalar Evolution analysis is returning more expressions than I expect - including ones that are not defined in terms of the loop induction variable. For instance in the following code:
for(unsigned long int bid = 0; bid < noofqueries; bid++){_ _unsigned long int currNode = noofnodes / 2;_ _// process levels of the tree_ _for(int i = 0; i < logN; i++){_ _if((knodes[currNode].key) > keys[bid]){ currNode = knodes[currNode].leftid; } else if ((knodes[currNode].key) < keys[bid]){_ _currNode = knodes[currNode].rightid;_ _}_ _else{_ _break;_ _}_ _}_ _}_ _I expect to extract a SCEV expression for the variable *keys*, however,_ _using ScalarEvolution I also get an expression_ _(using SE->getSCEV) for knodes. Since knodes does not evolve in terms of the loop induction variable I wasn't expecting to receive a SCEV expression for it. Can anyone please point out how SCEV expressions evolving in terms of the loop induction variable can be distinguished from expressions that are not. -Hashim University of Illinois at Urbana-Champaign
LLVM Developers mailing list llvm-dev at lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171201/9100934a/attachment.html>
- Previous message: [llvm-dev] Using Scalar Evolution to Identify Expressions Evolving in terms of Loop induction variables
- Next message: [llvm-dev] Some strange i64 behavior with arm 32bit. (Raspberry Pi)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]