aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/README
diff options
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2021-04-18 00:45:43 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2021-04-18 17:18:57 +0200
commit48eb2ca449b7f8e8e0684a2d92c8a1d0224861da (patch)
tree18fd21d390a3d696e77fe5e78233fcfc4b019aa2 /README
parenteb4cdd21b7d0cedbbeff7f70e24473706ccce5a6 (diff)
downloadsparse-dev-48eb2ca449b7f8e8e0684a2d92c8a1d0224861da.tar.gz
canonicalize constant signed compares toward zero
Currently, signed compares against a constant are canonicalized toward the smallest possible constant. So, the following canonicalization are done: x < 256 --> x <= 255 x < -2047 --> x <= -2048 This has two advantages: 1) it maximalizes the number of constants possible for a given bit size. 2) it allows to remove all < and all >= But it has also a serious disadvantages: a simple comparison against zero, like: x >= 0 is canonicalized into: x > -1 Which can be more costly for some architectures if translated as such , is also less readable than the version using 0 and is also sometimes quite more complicated to match in some simplification patterns. So, canonicalize it using 'towards 0' / using the smallest constant in absolute value. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'README')
0 files changed, 0 insertions, 0 deletions