CREDITS.TXT revision f5e941b9f690e54597af6b33df582ea2c5b72e4a
1b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanThis file is a partial list of people who have contributed to the LLVM
2b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha Brukmanproject.  If you have contributed a patch or made some other contribution to
3b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanLLVM, please submit a patch to this file to add yourself, and it will be 
4b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha Brukmandone!
50fc20c82bcf82a3a802bedf480b8e89048df2371Misha Brukman
60fc20c82bcf82a3a802bedf480b8e89048df2371Misha BrukmanThe list is sorted by name and formatted to allow easy grepping and
70fc20c82bcf82a3a802bedf480b8e89048df2371Misha Brukmanbeautification by scripts.  The fields are: name (N), email (E), web-address
80fc20c82bcf82a3a802bedf480b8e89048df2371Misha Brukman(W), PGP key ID and fingerprint (P), description (D), and snail-mail address
9b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha Brukman(S).
10b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha Brukman
11b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanN: Vikram Adve
12b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanE: vadve@cs.uiuc.edu
13b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanW: http://www.cs.uiuc.edu/~vadve/
14b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanD: The Sparc64 backend, provider of much wisdom, and motivator for LLVM
15f69dcb15c3b75a267c6e35d914a83d6c3445a192Chris Lattner
16f69dcb15c3b75a267c6e35d914a83d6c3445a192Chris LattnerN: Owen Anderson
17f69dcb15c3b75a267c6e35d914a83d6c3445a192Chris LattnerE: resistor@mac.com
18f200eee6ac761044d24de0c89ee3224d589fd72bMisha BrukmanD: LCSSA pass and related LoopUnswitch work
19f200eee6ac761044d24de0c89ee3224d589fd72bMisha BrukmanD: GVNPRE pass, TargetData refactoring, random improvements
20f200eee6ac761044d24de0c89ee3224d589fd72bMisha Brukman
21f200eee6ac761044d24de0c89ee3224d589fd72bMisha BrukmanN: Henrik Bach
222d7721457a7587285c46f1543185cef93164457cMisha BrukmanD: MingW Win32 API portability layer
232d7721457a7587285c46f1543185cef93164457cMisha Brukman
242d7721457a7587285c46f1543185cef93164457cMisha BrukmanN: Nate Begeman
252d7721457a7587285c46f1543185cef93164457cMisha BrukmanE: natebegeman@mac.com
262d7721457a7587285c46f1543185cef93164457cMisha BrukmanD: PowerPC backend developer
27b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanD: Target-independent code generator and analysis improvements
282d7721457a7587285c46f1543185cef93164457cMisha Brukman
29b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanN: Daniel Berlin
30f200eee6ac761044d24de0c89ee3224d589fd72bMisha BrukmanE: dberlin@dberlin.org
31f200eee6ac761044d24de0c89ee3224d589fd72bMisha BrukmanD: ET-Forest implementation.
32b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanD: Sparse bitmap
33b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha Brukman
342d7721457a7587285c46f1543185cef93164457cMisha BrukmanN: Neil Booth
350fc20c82bcf82a3a802bedf480b8e89048df2371Misha BrukmanE: neil@daikokuya.co.uk
36b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanD: APFloat implementation.  
37b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha Brukman
382d7721457a7587285c46f1543185cef93164457cMisha BrukmanN: Misha Brukman
39b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanE: brukman+llvm@uiuc.edu
40b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanW: http://misha.brukman.net
41f69dcb15c3b75a267c6e35d914a83d6c3445a192Chris LattnerD: Portions of X86 and Sparc JIT compilers, PowerPC backend
42f69dcb15c3b75a267c6e35d914a83d6c3445a192Chris LattnerD: Incremental bytecode loader
43f69dcb15c3b75a267c6e35d914a83d6c3445a192Chris Lattner
442d7721457a7587285c46f1543185cef93164457cMisha BrukmanN: Cameron Buschardt
452d7721457a7587285c46f1543185cef93164457cMisha BrukmanE: buschard@uiuc.edu
462d7721457a7587285c46f1543185cef93164457cMisha BrukmanD: The `mem2reg' pass - promotes values stored in memory to registers
472d7721457a7587285c46f1543185cef93164457cMisha Brukman
484ce08a0a47d0708455195237ac30b626dcdf969aChris LattnerN: Chandler Carruth
49ab5948f2427a1b7f3f92e338fb70f682d81c0fb6Alkis EvlogimenosE: chandlerc@gmail.com
504ce08a0a47d0708455195237ac30b626dcdf969aChris LattnerD: LinkTimeOptimizer for Linux, via binutils integration, and C API
514ce08a0a47d0708455195237ac30b626dcdf969aChris Lattner
52b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanN: Casey Carter
53b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanE: ccarter@uiuc.edu
54b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanD: Fixes to the Reassociation pass, various improvement patches
55a713bc9ce7c4dee097ede76c2afa073c5ecc7fceBrian Gaeke
56d56bd42b917a81adc75af566d2bf6a3f42b9f0d3Brian GaekeN: Evan Cheng
572d7721457a7587285c46f1543185cef93164457cMisha BrukmanE: evan.cheng@apple.com
58b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanD: ARM and X86 backends
59f200eee6ac761044d24de0c89ee3224d589fd72bMisha BrukmanD: Instruction scheduler improvements
60f200eee6ac761044d24de0c89ee3224d589fd72bMisha BrukmanD: Register allocator improvements
61f200eee6ac761044d24de0c89ee3224d589fd72bMisha BrukmanD: Loop optimizer improvements
62f69dcb15c3b75a267c6e35d914a83d6c3445a192Chris LattnerD: Target-independent code generator improvements
63309ca69064f027702499605fc98f76ea8d34fd37Misha Brukman
64f69dcb15c3b75a267c6e35d914a83d6c3445a192Chris LattnerN: Jeff Cohen
65f69dcb15c3b75a267c6e35d914a83d6c3445a192Chris LattnerE: jeffc@jolt-lang.org
66323ed35e4fda5247799a8ec384a2d1f39b4c461dMisha BrukmanW: http://jolt-lang.org
67323ed35e4fda5247799a8ec384a2d1f39b4c461dMisha BrukmanD: Native Win32 API portability layer
68323ed35e4fda5247799a8ec384a2d1f39b4c461dMisha Brukman
69323ed35e4fda5247799a8ec384a2d1f39b4c461dMisha BrukmanN: John T. Criswell
703acd9181df5d8f76f75a384266e2a78b9a6c4f45Chris LattnerE: criswell@uiuc.edu
713acd9181df5d8f76f75a384266e2a78b9a6c4f45Chris LattnerD: Original Autoconf support, documentation improvements, bug fixes
723acd9181df5d8f76f75a384266e2a78b9a6c4f45Chris Lattner
733acd9181df5d8f76f75a384266e2a78b9a6c4f45Chris LattnerN: Rafael Avila de Espindola
74b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanE: rafael.espindola@gmail.com
75b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanD: The ARM backend
76b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha Brukman
77b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanN: Alkis Evlogimenos
78b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanE: alkis@evlogimenos.com
79b8356b3ce2d1913d466ac4dc1812d7e2520527ddChris LattnerD: Linear scan register allocator, many codegen improvements, Java frontend
80b8356b3ce2d1913d466ac4dc1812d7e2520527ddChris Lattner
81323ed35e4fda5247799a8ec384a2d1f39b4c461dMisha BrukmanN: Brian Gaeke
82b8356b3ce2d1913d466ac4dc1812d7e2520527ddChris LattnerE: gaeke@uiuc.edu
83309ca69064f027702499605fc98f76ea8d34fd37Misha BrukmanW: http://www.students.uiuc.edu/~gaeke/
84309ca69064f027702499605fc98f76ea8d34fd37Misha BrukmanD: Portions of X86 static and JIT compilers; initial SparcV8 backend
85309ca69064f027702499605fc98f76ea8d34fd37Misha BrukmanD: Dynamic trace optimizer 
86309ca69064f027702499605fc98f76ea8d34fd37Misha BrukmanD: FreeBSD/X86 compatibility fixes, the llvm-nm tool
87b7206e74fc9cae6533593853a9763a4b6257f5a2Misha Brukman
88b7206e74fc9cae6533593853a9763a4b6257f5a2Misha BrukmanN: Nicolas Geoffray
899cd94d72b0cc5014c09775f2050cdd868baaa3e3Misha BrukmanE: nicolas.geoffray@lip6.fr
90b7206e74fc9cae6533593853a9763a4b6257f5a2Misha BrukmanW: http://www-src.lip6.fr/homepages/Nicolas.Geoffray/
91b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanD: PPC backend fixes for Linux
92b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha Brukman
93b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanN: Louis Gerbarg
94b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanD: Portions of the PowerPC backend
95b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha Brukman
96b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanN: Saem Ghani
972d7721457a7587285c46f1543185cef93164457cMisha BrukmanE: saemghani@gmail.com
98b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanD: Callgraph class cleanups
9975920ee4608c556711df852cda647b5a13075f03Brian Gaeke
10075920ee4608c556711df852cda647b5a13075f03Brian GaekeN: Mikhail Glushenkov
101ad4ce52618ca03923d11e3f9f4aa19090687210dReid SpencerE: foldr@codedgers.com
1027b8848f6e90e390045777d7c210841b33e844162Reid SpencerD: Author of llvmc2
10375920ee4608c556711df852cda647b5a13075f03Brian Gaeke
104b296160ce9693149d6f8d8b8f2596a05d4a8330dMisha BrukmanN: Dan Gohman
10576602528ec7de476452c5b0f7a3314bd3d0577b8Chris LattnerE: djg@cray.com
1062d7721457a7587285c46f1543185cef93164457cMisha BrukmanD: Miscellaneous bug fixes
107
108N: David Greene
109E: greened@obbligato.org
110D: Miscellaneous bug fixes
111D: Register allocation refactoring
112
113N: Gordon Henriksen
114E: gordonhenriksen@mac.com
115D: Pluggable GC support
116D: C interface
117D: Ocaml bindings
118
119N: Raul Fernandes Herbster
120E: raul@dsc.ufcg.edu.br
121D: JIT support for ARM
122
123N: Paolo Invernizzi
124E: arathorn@fastwebnet.it
125D: Visual C++ compatibility fixes 
126
127N: Patrick Jenkins
128E: patjenk@wam.umd.edu
129D: Nightly Tester
130
131N: Brad Jones
132E: kungfoomaster@nondot.org
133D: Support for packed types
134
135N: Dale Johannesen
136E: dalej@apple.com
137D: ARM constant islands improvements
138D: Tail merging improvements
139D: Rewrite X87 back end
140D: Use APFloat for floating point constants widely throughout compiler
141D: Implement X87 long double
142
143N: Eric Kidd
144W: http://randomhacks.net/
145D: llvm-config script
146
147N: Anton Korobeynikov
148E: asl@math.spbu.ru
149D: Mingw32 fixes, cross-compiling support, stdcall/fastcall calling conv.
150D: x86/linux PIC codegen, aliases, regparm/visibility attributes
151D: Switch lowering refactoring
152
153N: Sumant Kowshik
154E: kowshik@uiuc.edu
155D: Author of the original C backend
156
157N: Christopher Lamb
158E: christopher.lamb@gmail.com
159D: aligned load/store support, parts of noalias and restrict support
160D: vreg subreg infrastructure, X86 codegen improvements based on subregs
161D: address spaces
162
163N: Jim Laskey
164E: jlaskey@apple.com
165D: Improvements to the PPC backend, instruction scheduling
166D: Debug and Dwarf implementation
167D: Auto upgrade mangler 
168D: llvm-gcc4 svn wrangler
169
170N: Chris Lattner
171E: sabre@nondot.org
172W: http://nondot.org/~sabre/
173D: Primary architect of LLVM
174
175N: Tanya Lattner (Tanya Brethour)
176E: tonic@nondot.org
177W: http://nondot.org/~tonic/
178D: The initial llvm-ar tool, converted regression testsuite to dejagnu
179D: Modulo scheduling in the SparcV9 backend
180D: Release manager (1.7+)
181
182N: Andrew Lenharth
183E: alenhar2@cs.uiuc.edu
184W: http://www.lenharth.org/~andrewl/
185D: Alpha backend
186D: Sampling based profiling
187
188N: Nick Lewycky
189E: nicholas@mxc.ca
190D: PredicateSimplifier pass
191
192N: Bruno Cardoso Lopes
193E: bruno.cardoso@gmail.com
194W: http://www.brunocardoso.org
195D: The Mips backend
196
197N: Duraid Madina
198E: duraid@octopus.com.au
199W: http://kinoko.c.u-tokyo.ac.jp/~duraid/
200D: IA64 backend, BigBlock register allocator
201
202N: Michael McCracken
203E: michael.mccracken@gmail.com
204D: Line number support for llvmgcc
205
206N: Vladimir Merzliakov
207E: wanderer@rsu.ru
208D: Test suite fixes for FreeBSD
209
210N: Scott Michel
211E: scottm@aero.org
212D: Added STI Cell SPU backend.
213
214N: Morten Ofstad
215E: morten@hue.no
216D: Visual C++ compatibility fixes 
217
218N: Devang Patel
219E: dpatel@apple.com
220D: LTO tool, PassManager rewrite, Loop Pass Manager, Loop Rotate
221D: GCC PCH Integration (llvm-gcc), llvm-gcc improvements
222D: Optimizer improvements, Loop Index Split
223
224N: Vladimir Prus
225W: http://vladimir_prus.blogspot.com
226E: ghost@cs.msu.su
227D: Made inst_iterator behave like a proper iterator, LowerConstantExprs pass
228
229N: Roman Samoilov
230E: roman@codedgers.com
231D: MSIL backend
232
233N: Duncan Sands
234E: baldrick@free.fr
235D: Ada front-end, exception handling improvements
236
237N: Ruchira Sasanka
238E: sasanka@uiuc.edu
239D: Graph coloring register allocator for the Sparc64 backend
240
241N: Arnold Schwaighofer
242E: arnold.schwaighofer@gmail.com
243D: Tail call optimization for the x86 backend
244
245N: Anand Shukla
246E: ashukla@cs.uiuc.edu
247D: The `paths' pass
248
249N: Reid Spencer
250E: rspencer@reidspencer.com
251W: http://reidspencer.com/
252D: Lots of stuff, see: http://wiki.llvm.org/index.php/User:Reid
253
254N: Adam Treat
255E: manyoso@yahoo.com
256D: C++ bugs filed, and C++ front-end bug fixes.
257
258N: Lauro Ramos Venancio
259E: lauro.venancio@indt.org.br
260D: ARM backend improvements
261D: Thread Local Storage implementation
262
263N: Bill Wendling
264E: isanbard@gmail.com
265W: http://web.mac.com/bwendling/
266D: Darwin exception handling
267D: MMX & SSSE3 instructions
268D: SPEC2006 support
269