Move pointer difference checking into the ipa pass
Fixed some asserts
new version