[PATCH] D27491: [LVI] Meet rules for non-null pointers

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 6 20:13:49 PST 2016


reames abandoned this revision.
reames added a comment.

This turns out to be a terrible idea as written.  I realized after some reflection that I was essentially adding another state into the lattice and reused the not-constant state to represent both it's original meaning and the new state.  In particular, this patch would allow a constant to fall to a non-constant before reaching overdefined.  That's a new state transition not previously allowed..

The optimization power might be worth salvaging somewhere else; possibly as a null check specific analysis?  I'm noticing in this code that floats, pointers, and integers get essentially disjoint results despite sharing a common infrastructure.  (We never use results from one domain to influence results from another.)  I'm increasingly thinking we need to split the analysis to reflect that.  It might be worth sharing some code, but I'm also thinking about entirely different framings for the non-null analysis which is the primary purpose of the pointer tracking.  Something to think about further...


https://reviews.llvm.org/D27491





More information about the llvm-commits mailing list