 Thus SCU requires explicit partitioning (manual partitioning or "sharding" into multiple units) to parallelize compilation.SCU also allows an optimizing compiler to perform interprocedural optimization without requiring link-time optimization, therefore allowing optimizations such as inlining, and helps avoiding implicit code bloat due to exceptions, side effects, and register allocation.These optimizations are often not possible in many compilers, due to independent compilation, where optimization happens separately in each translation unit during "compilation," but the "dumb linker" simply links object files, without performing any optimizations itself, and thus interprocedural optimization between translation units is not possible.