adding 'constructor wrappers' - constructors are treated as init functions taking a this pointer, and global invocation calls a wrapper that creates one, initializes it,and returns it
constructors for stack variables, (by generating wrapper functions. the raw constructor takes a this pointer to initializer. the wrapper function makes a struct locally, initializes it, returns it.. count on llvm to opt.