Properly calculate the scope

My old mechanism was worthless, I have no idea what I was thinking.
This one should actually work...
Mark sift as LARGE

This isn't actually too large to run, it's just a bug in the LLVM
backend that prevents it from having the correct internal nodes.