Before revision:  In response to this problem , researchers have proposed new runtimes and intermediate representations (IRs) that apply optimizations such as loop fusion under existing library APIs . Even though these runtimes generally do no require changes to user code , they require intrusive changes to the library itself: often, all the library functions need to be rewritten for a new IR or virtual machine .
After revision:  In response to this problem , researchers have proposed using compilers and intermediate representations (IRs) that apply optimizations such as loop fusion under existing library APIs . Even though these runtimes generally do no require changes to user code , they require intrusive changes to the library itself: often, all the library functions need to be rewritten for a new IR or virtual machine .