Bug 16358: simplify SCEVs with assumptions

Sebastian Pop spop at codeaurora.org
Mon Nov 25 17:52:52 PST 2013


Sebastian Pop wrote:
> Also another problem that I have seen is that the expression niter computes is
> cached, so any subsequent queries to niter would have to provide the assumptions
> under which the niter expression has been computed. So one would have to attach
> to the cached value of a SCEV the assumptions under which that expression has
> been computed.

One idea that is used in ISL and before in other polyhedral tools like PIP is to
build a "quast" (quasi affine syntax tree) that lists the constraints under
which the expression is nice and known and the constraints under which the
expression cannot be computed: so the expression niter computes would look like

if ({1,+,1}<%for> < 2**16)
  {1,+,1}<%for>
else
  unknown

That way one would explicitely get the constraints under which the expression
has a nice form, and the cases under which it cannot be computed.

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation



More information about the llvm-commits mailing list