diff gc also elimiate meaningless store ops & fix bugs, todo: test factorize