"GEP" is a particular arcane LLVM-ism.  I'll try to explain its basics with comments.  This wrapper class is meant to greatly simplify doing basic things with LLVM, but it's not meant to prevent you from understanding LLVM's core concepts.