Toolchains are basically a bundle of development tools that are used in a chain (the output of one tool becomes the input for the next, and so on) in order to compile source code (in this case, ROMs and kernels). While the Android NDK toolchain (which comes with GCC, among other tools) is usually used for this, developers can also use other toolchains if they wish. These can include optimizations focusing on performance or stability, for example.

Linaro and SaberMod are two popular examples for custom toolchains. They both introduce several optimizations, especially for recent ARM CPUs. If you're trying to find out how to switch to a custom toolchain, then you might want to check out the tutorial XDA Senior Member frap129 has written. In it, he explains how to fetch the toolchain you want, as well as the necessary changes in order to use it. While the guide uses Linaro and SaberMod as examples, it could be used for any other custom toolchain as well. Interested? Go to the Switching to a Custom Toolchain Guide forum thread now to get started!

Using custom toolchains, even though it may provide significant benefits, can also have a negative impact on stability and introduce bugs that are hard to track down and fix. This is a good thing to keep in mind while experimenting!

If you're just starting and would like to learn how to compile a ROM or kernel from source, then we've also got you covered. Head over to XDA-University, which has tutorials to do just that and much more.