brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 1bc2eae Raw
31 lines · plain
1Date: Wed, 20 Jun 2001 12:32:22 -05002From: Vikram Adve <vadve@cs.uiuc.edu>3To: Chris Lattner <lattner@cs.uiuc.edu>4Subject: .NET vs. our VM5 6One significant difference between .NET CLR and our VM is that the CLR7includes full information about classes and inheritance.  In fact, I just8sat through the paper on adding templates to .NET CLR, and the speaker9indicated that the goal seems to be to do simple static compilation (very10little lowering or optimization).  Also, the templates implementation in CLR11"relies on dynamic class loading and JIT compilation".12 13This is an important difference because I think there are some significant14advantages to have a much lower level VM layer, and do significant static15analysis and optimization.16 17I also talked to the lead guy for KAI's C++ compiler (Arch Robison) and he18said that SGI and other commercial compilers have included options to export19their *IR* next to the object code (i.e., .il files) and use them for20link-time code generation.  In fact, he said that the .o file was nearly21empty and was entirely generated from the .il at link-time.  But he agreed22that this limited the link-time interprocedural optimization to modules23compiled by the same compiler, whereas our approach allows us to link and24optimize modules from multiple different compilers.  (Also, of course, they25don't do anything for runtime optimization).26 27All issues to bring up in Related Work.28 29--Vikram30 31