enableSplitting simply enables/disables whether we should split
or use the full buffer. insertMarkerInOutput toggles if split markers
should be inserted in between prcessed output chunks.
These options allow for merging the duplicate code paths we have
when splitting is optional.
would this be better done as an llvm::interleave call?