This patch adds the llvm.intr.lifetime.start and llvm.intr.lifetime.end
intrinsics which are used to indicate to LLVM the lifetimes of allocated
memory.
These ops have the requirement that the first argument (the size) be an
"immediate argument". I added an OpTrait to check this, but it is
possible that an approach like GEPArg would work too.
Nice! I wonder if we already have more LLVM ops with this requirement. Are we just not checking that invariant for them?