------- Comment #2 from steven at gcc dot gnu dot org 2009-04-18 20:01 ------- Similar as what is said in commen #0, the detailed vrp1 dump of trunk today has:
Removing basic block 3 ;; basic block 3, loop depth 0, count 0 ;; prev block 7, next block 4 ;; pred: ;; succ: 8 [100.0%] (fallthru,exec) Invalid sum of incoming frequencies 0, should be 5000 goto <bb 8>; Note the *Removing* basic block. The CFG branch probabilities have already been updated at this point. The edge redirection functions do not take care of this (often only the caller knows how the profile/predictions should be updated). You can see in the dump at the end what the function looks like after vrp1, and you'll notice the branch probabilities are OK. So there is no bug -> INVALID. But thanks for the report. It took me a little while to figure out what is going on. We should probably not dump this "Invalid sum" blah-blah for blocks that we are about to remove. -- steven at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35452