On Thu, 1 Nov 2012, Kenneth Zadeck wrote:
This patch converts tree-vpn to use wide-int. In doing so it gets rid of
all restrictions that this pass currently has on the target or source word
size.
The pass's reliance on a finite "infinite precision" representation has been
preserved. It first scans the function being compiled to determine the
largest type that needs to be represented within that function and then it
uses some multiple of that size as it's definition of infinite.
I am currently using 4 for this value. However marc glisse claims that this
may be due to a bug and that the value should be 2. This is something that
has to be investigated further. This could easily be my mistake or some
other issue that has crept into the pass. The value of 2 or 4 is easily
changed in largest_initialize. The only truly non mechanical
transformation is in the code that multiplies two ranges. This code uses
the wide-int multiply full functions rather than using pairs of double-ints.
(I didn't look at the patch (yet))
Er, no, I didn't claim that using 4 was wrong, I think it is good because
it makes things easier. I only claimed that the current implementation
jumps through enough hoops to make do with 2.
--
Marc Glisse