This file is a list of the people responsible for ensuring that patches for a
particular part of LLVM are reviewed, either by themself or by someone else.
They are also the gatekeepers for their part of LLVM, with the final word on
what goes in or not.

The list is sorted by surname and formatted to allow easy grepping and
beautification by scripts.  The fields are: name (N), email (E), web-address
(W), PGP key ID and fingerprint (P), description (D), and snail-mail address
(S). Each entry should contain at least the (N), (E) and (D) fields.

N: Joe Abbey
E: jabbey@arxan.com
D: LLVM Bitcode (lib/Bitcode/* include/llvm/Bitcode/*)

N: Owen Anderson
E: resistor@mac.com
D: SelectionDAG (lib/CodeGen/SelectionDAG/*)

N: Rafael Avila de Espindola
E: rafael.espindola@gmail.com
D: Gold plugin (tools/gold/*)

N: Justin Bogner
E: mail@justinbogner.com
D: InstrProfiling and related parts of ProfileData

N: Chandler Carruth
E: chandlerc@gmail.com
E: chandlerc@google.com
D: Config, ADT, Support, inlining & related passes, SROA/mem2reg & related passes, CMake, library layering

N: Evan Cheng
E: evan.cheng@apple.com
D: parts of code generator not covered by someone else

N: Eric Christopher
E: echristo@gmail.com
D: Debug Information, autotools/configure/make build, inline assembly

N: Greg Clayton
E: gclayton@apple.com
D: LLDB

N: Marshall Clow
E: mclow.lists@gmail.com
D: libc++

N: Peter Collingbourne
E: peter@pcc.me.uk
D: llgo

N: Quentin Colombet
E: qcolombet@apple.com
D: Register allocators

N: Duncan P. N. Exon Smith
E: dexonsmith@apple.com
D: Branch weights and BlockFrequencyInfo

N: Hal Finkel
E: hfinkel@anl.gov
D: BBVectorize, the loop reroller, alias analysis and the PowerPC target

N: Dan Gohman
E: sunfish@mozilla.com
D: WebAssembly Backend (lib/Target/WebAssembly/*)

N: Renato Golin
E: renato.golin@linaro.org
D: ARM Linux support

N: Venkatraman Govindaraju
E: venkatra@cs.wisc.edu
D: Sparc Backend (lib/Target/Sparc/*)

N: Tobias Grosser
E: tobias@grosser.es
D: Polly

N: James Grosbach
E: grosbach@apple.com
D: MC layer

N: Justin Holewinski
E: jholewinski@nvidia.com
D: NVPTX Target (lib/Target/NVPTX/*)

N: Lang Hames
E: lhames@gmail.com
D: MCJIT, RuntimeDyld and JIT event listeners

N: Galina Kistanova
E: gkistanova@gmail.com
D: LLVM Buildbot

N: Anton Korobeynikov
E: anton@korobeynikov.info
D: Exception handling, Windows codegen, ARM EABI

N: Benjamin Kramer
E: benny.kra@gmail.com
D: DWARF Parser

N: Sergei Larin
E: slarin@codeaurora.org
D: VLIW Instruction Scheduling, Packetization

N: Chris Lattner
E: sabre@nondot.org
W: http://nondot.org/~sabre/
D: Everything not covered by someone else

N: David Majnemer
E: david.majnemer@gmail.com
D: IR Constant Folder, InstCombine

N: Dylan McKay
E: dylanmckay34@gmail.com
D: AVR Backend

N: Tim Northover
E: t.p.northover@gmail.com
D: AArch64 backend, misc ARM backend

N: Diego Novillo
E: dnovillo@google.com
D: SampleProfile and related parts of ProfileData

N: Jakob Olesen
E: stoklund@2pi.dk
D: TableGen

N: Richard Osborne
E: richard@xmos.com
D: XCore Backend

N: Krzysztof Parzyszek
E: kparzysz@codeaurora.org
D: Hexagon Backend

N: Paul Robinson
E: paul_robinson@playstation.sony.com
D: Sony PlayStation®4 support

N: Chad Rosier
E: mcrosier@codeaurora.org
D: Fast-Isel

N: Nadav Rotem
E: nrotem@apple.com
D: X86 Backend, Loop Vectorizer

N: Daniel Sanders
E: daniel.sanders@imgtec.com
D: MIPS Backend (lib/Target/Mips/*)

N: Duncan Sands
E: baldrick@free.fr
D: DragonEgg

N: Kostya Serebryany
E: kcc@google.com
D: AddressSanitizer, ThreadSanitizer (LLVM parts)

N: Michael Spencer
E: bigcheesegs@gmail.com
D: Windows parts of Support, Object, ar, nm, objdump, ranlib, size

N: Alexei Starovoitov
E: alexei.starovoitov@gmail.com
D: BPF backend

N: Tom Stellard
E: thomas.stellard@amd.com
E: mesa-dev@lists.freedesktop.org
D: Release manager for the 3.5 and 3.6 branches, R600 Backend, libclc

N: Evgeniy Stepanov
E: eugenis@google.com
D: MemorySanitizer (LLVM part)

N: Andrew Trick
E: atrick@apple.com
D: IndVar Simplify, Loop Strength Reduction, Instruction Scheduling

N: Ulrich Weigand
E: uweigand@de.ibm.com
D: SystemZ Backend

N: Bill Wendling
E: isanbard@gmail.com
D: libLTO, IR Linker

N: Peter Zotov
E: whitequark@whitequark.org
D: OCaml bindings

N: Andrey Churbanov
E: andrey.churbanov@intel.com
D: OpenMP runtime library
