Acc to Aho Ullman book, PeepHole Optimization is done by examining a sliding window of target instructions(called the peephole) and replacing instruction sequences within the peephole by a faster sequence. It can be applied directly after Intermediate Code Generation to improve the intermediate representation. The code in the peephole need not be contiguous , although some implementations do require this.
So, options A, B and C are true. Only D is false. (Possible typo in question)