-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 04/21/11 11:26, Steven Bosscher wrote: >> Bootstrapped and regression tested on x86_64-unknown-linux-gnu. OK for >> trunk? > > Would this also fix PR18046? Not right now.
If we look at VRP2 (and this only affects VRP's jump threading) we have: SSA form after inserting ASSERT_EXPRs bar () { int prephitmp.5; int pretmp.4; int i.0; # BLOCK 2 freq:10000 # PRED: ENTRY [100.0%] (fallthru,exec) # VUSE <.MEM_5(D)> i.0_1 = i; switch (i.0_1) <default: <L2>, case 0: <L0>> # SUCC: 4 [71.0%] (exec) 3 [29.0%] (exec) # BLOCK 3 freq:2900 # PRED: 2 [29.0%] (exec) <L0>: i.0_2 = ASSERT_EXPR <i.0_1, i.0_1 == 0>; # .MEM_6 = VDEF <.MEM_5(D)> foo (); # VUSE <.MEM_6> pretmp.4_8 = i; # SUCC: 4 [100.0%] (fallthru,exec) # BLOCK 4 freq:10000 # PRED: 2 [71.0%] (exec) 3 [100.0%] (fallthru,exec) # .MEM_3 = PHI <.MEM_5(D)(2), .MEM_6(3)> # prephitmp.5_9 = PHI <i.0_1(2), pretmp.4_8(3)> <L2>: switch (prephitmp.5_9) <default: <L6>, case 0: <L4>> # SUCC: 6 [61.0%] (exec) 5 [39.0%] (exec) # BLOCK 5 freq:3898 # PRED: 4 [39.0%] (exec) <L4>: # .MEM_7 = VDEF <.MEM_3> foo (); # SUCC: 6 [100.0%] (fallthru,exec) # BLOCK 6 freq:10000 # PRED: 4 [61.0%] (exec) 5 [100.0%] (fallthru,exec) # .MEM_4 = PHI <.MEM_3(4), .MEM_7(5)> <L6>: # VUSE <.MEM_4> return; # SUCC: EXIT [100.0%] } Note the lack of range information for i.0_1 for the default case of the first switch. That's going to be a prerequisite for threading through the second switch which its reached via the default path from the first switch. jeff -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJNsGviAAoJEBRtltQi2kC79/AH/3jrM+zArf6l9tUlyO8dFF4T IBfJW8oq94DQfwyahEh6yk1Qeh6YkV3e5GsmIpI3GAzimhekoXEKchdqbXvYfSvC JNk5FmTlv5rc4SUL+rPLpOeVNxgj46LXjlgUh3d3Ino5PXW8uhal4qidMEPxhonA HHgbwuvYdhLWrJYJ35mEP5HPQGLRTVQtCdpDz+8CXl9D8Cr87y93W+cOEXckhOGI yJeUhTRYftVCOwDdVfzEgqM+3OkGq6PE0TEMh/OUA2zDfeTVfQ8/vv9T521X/DJW v9a7JN0gQM+6Hp5MmpMnSpKCfmeKKXUpvisT/Cr0pHeXKthmbm1nwRFoHalYp5g= =6WXP -----END PGP SIGNATURE-----