AtomLayout is basically a way to look at the address of an atom when you want to apply relocations. So its an intended use. Anything that has an output address needs to go through AtomLayout. http://llvm-reviews.chandlerc.com/D977