[PATCH] D27826: Regenerate Halide benchmark bitcode files. Resolves TBAA verification failures.
Sanjoy Das via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 16 10:02:01 PST 2016
sanjoy added a comment.
In https://reviews.llvm.org/D27826#624596, @mehdi_amini wrote:
> (Repeating what I mentioned on IRC): having a strict verifier is fine, as long as the bitcode reader is able to upgrade the bitcode (if necessary by dropping MDs) so that old bitcode that were correctly processed before are still handled. This is an important behavior of the backward compatibility, at least for our (Apple) use case.
I'm happy with the direction of https://reviews.llvm.org/D27839 and its dependencies, but I'd like to point out that this change is not erroring out on old bitcode that was "correctly processed before" -- any metadata this would have failed on could have been miscompiled. That is, I did not change the spec and then add a verifier for the new spec; this verifier is only checking properties that correct bitcode should have had anyway. This is not unlike (a friendlier form) of making LLVM better at exploiting undefined behavior. Some programs will break, but they were wrong anyway. :)
However, I do understand that there may be different tradeoffs for users who have lots of old bitcode that they'd like to keep working; and so (as I said above) I'm okay with a gentler verifier that drop bad metadata as long as we can have the stricter mode also.
More information about the llvm-commits