The internal linker is part of the compiler. By doing so the linker has more information available what can be removed from the final executable, we will for example be able to smartlink resource strings, virtual methods and even debug information.