Hi Martin, On 19/07/16 18:22, kugan wrote: > Hi Martin, > > Thanks for the review. I have revised the patch based on the review. > Please see the comments below. > Maybe it is better to separate value range and alignment summary writing/reading to different functions. Here is another updated version which does this. This should be more readable and easy to maintain. Bootstrapped (LTO and normal) and regression tested on x86-64-linux. There are few test-case regressions which I am looking int: Tests that now fail, but worked before: 27_io/basic_istream/get/char/1.cc execution test g++.dg/ipa/pure-const-3.C -std=gnu++11 scan-tree-dump optimized "barvar" g++.dg/ipa/pure-const-3.C -std=gnu++14 scan-tree-dump optimized "barvar" g++.dg/ipa/pure-const-3.C -std=gnu++98 scan-tree-dump optimized "barvar" gcc.dg/guality/pr54519-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 20 y == 25 gcc.dg/guality/pr54519-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 23 y == 117 gcc.dg/torture/ftrapv-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects execution test New tests that FAIL: gcc.dg/guality/pr54519-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 20 z == 6 gcc.dg/guality/pr54519-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 23 z == 8 gcc.dg/tree-ssa/pr22117.c scan-tree-dump-times evrp "Folding predicate r_.* != 0B to 0" 1 I will send the patch with testcase fix and Changelog based on the preference. Thanks, Kugan