InternalCall are treated as declaration only (no method body).
Isinst opcode: Generate proper basic block names, and fix an issue with next PHI instructions failing due to FunctionCompilerContext.BasicBlock not being set correctly.
Tests: refactor TestFiles to easily test compilation against real mscorlib later.
Compiler: Rearrange order of how class and fields are initialized (avoid rare circular dependencies)
Compiler: string constants are now emitted with private linkage (avoid collision with other modules).
Compiler: use actual type of value when doing stack conversion.
Compiler: allow resolved method to be null while checking if it has PInvoke info.
Compiler: Factorized code that converts from integer or pointer to native-sized integer (used for newarr, ldelem, ldelema & stelem).
Linker: Added compiler-rt, so that LLVM builtins are available (i.e. __mulodi4 required by mscorlib).
Compiler: separate Runtime and InternalCall methods. Fixes SimpleDelegate test.
Static initializer: Set initialized flag early to avoid infinite recursion. Note: this will need lock/rewrite to handle proper multithreading.
Mangling: removed return type from name signature (not supposed to have two overrides with only return type being different).
Compiler: Class internal structures (vtable, rtti, etc...) now use named struct. This greatly reduces size of disassembled LLVM code (by a factor of almost 10).
Isinst/Cast opcodes: Properly handle case where object is null.
Compiler: Reorder some custom basic blocks to make LLVM disassembled code easier to understand.
Conv opcode: correctly compute size of intptr (Conv_U/Conv_I).
Debug info: Add namespace and class types. Also improve debug info is assembly is not compiled in debug mode.
Type: Properly reuse VTable type (which is now a named struct) instead of creating an unnamed constant. Fixes #24.
SharpLLVM: Added DIBuilderCreateForwardDecl.
Debug: Generate DWARF info for class and members.