llvm.org GIT mirror llvm / d6be43e
Added notes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58 91177308-0d34-0410-b5e6-96231b3b80d8 Chris Lattner 18 years ago
1 changed file(s) with 30 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
0 Date: Wed, 20 Jun 2001 12:32:22 -0500
1 From: Vikram Adve
2 To: Chris Lattner
3 Subject: .NET vs. our VM
4
5 One significant difference between .NET CLR and our VM is that the CLR
6 includes full information about classes and inheritance. In fact, I just
7 sat through the paper on adding templates to .NET CLR, and the speaker
8 indicated that the goal seems to be to do simple static compilation (very
9 little lowering or optimization). Also, the templates implementation in CLR
10 "relies on dynamic class loading and JIT compilation".
11
12 This is an important difference because I think there are some significant
13 advantages to have a much lower level VM layer, and do significant static
14 analysis and optimization.
15
16 I also talked to the lead guy for KAI's C++ compiler (Arch Robison) and he
17 said that SGI and other commercial compilers have included options to export
18 their *IR* next to the object code (i.e., .il files) and use them for
19 link-time code generation. In fact, he said that the .o file was nearly
20 empty and was entirely generated from the .il at link-time. But he agreed
21 that this limited the link-time interprocedural optimization to modules
22 compiled by the same compiler, whereas our approach allows us to link and
23 optimize modules from multiple different compilers. (Also, of course, they
24 don't do anything for runtime optimization).
25
26 All issues to bring up in Related Work.
27
28 --Vikram
29