title: How to generate code for initializing global variables with non-const values in LLVM?
body: <p>In LLVM (specifically llvmlite), how does one declare a global variable and initialize its contents with the result of an arbitrary (runtime) expression?</p>
  
  <p>I see that I can create a GlobalVariable object, but it looks like its <code>initializer</code> argument is expecting a <code>Constant</code>. What if I must run arbitrary code at startup/load time to determine its value? Where does that code go? Whose <code>Builder</code> do I add instructions to? Do I declare a specially-named function and/or add magic attributes to it so that it automatically execs when the module is loaded into memory at runtime?</p>