Commit Graph

66 Commits

Author SHA1 Message Date
Joerg Sonnenberger
5ba6014e0d Tom is also responsible for the 3.6 branch.
llvm-svn: 232395
2015-03-16 18:15:27 +00:00
Quentin Colombet
13bf507c39 [CODE_OWNERS] Change the ownership of register allocators.
llvm-svn: 231412
2015-03-05 22:15:17 +00:00
Alex Rosenberg
2bfc4c9d61 Assume code ownership for the PS4 to ensure patches get reviewed, per the Developer Policy.
llvm-svn: 227340
2015-01-28 18:33:39 +00:00
Alexei Starovoitov
9de5355969 BPF backend
Summary:
V8->V9:
- cleanup tests

V7->V8:
- addressed feedback from David:
- switched to range-based 'for' loops
- fixed formatting of tests

V6->V7:
- rebased and adjusted AsmPrinter args
- CamelCased .td, fixed formatting, cleaned up names, removed unused patterns
- diffstat: 3 files changed, 203 insertions(+), 227 deletions(-)

V5->V6:
- addressed feedback from Chandler:
- reinstated full verbose standard banner in all files
- fixed variables that were not in CamelCase
- fixed names of #ifdef in header files
- removed redundant braces in if/else chains with single statements
- fixed comments
- removed trailing empty line
- dropped debug annotations from tests
- diffstat of these changes:
  46 files changed, 456 insertions(+), 469 deletions(-)

V4->V5:
- fix setLoadExtAction() interface
- clang-formated all where it made sense

V3->V4:
- added CODE_OWNERS entry for BPF backend

V2->V3:
- fix metadata in tests

V1->V2:
- addressed feedback from Tom and Matt
- removed top level change to configure (now everything via 'experimental-backend')
- reworked error reporting via DiagnosticInfo (similar to R600)
- added few more tests
- added cmake build
- added Triple::bpf
- tested on linux and darwin

V1 cover letter:
---------------------
recently linux gained "universal in-kernel virtual machine" which is called
eBPF or extended BPF. The name comes from "Berkeley Packet Filter", since
new instruction set is based on it.
This patch adds a new backend that emits extended BPF instruction set.

The concept and development are covered by the following articles:
http://lwn.net/Articles/599755/
http://lwn.net/Articles/575531/
http://lwn.net/Articles/603983/
http://lwn.net/Articles/606089/
http://lwn.net/Articles/612878/

One of use cases: dtrace/systemtap alternative.

bpf syscall manpage:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=b4fc1a460f3017e958e6a8ea560ea0afd91bf6fe

instruction set description and differences vs classic BPF:
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/networking/filter.txt

Short summary of instruction set:
- 64-bit registers
  R0      - return value from in-kernel function, and exit value for BPF program
  R1 - R5 - arguments from BPF program to in-kernel function
  R6 - R9 - callee saved registers that in-kernel function will preserve
  R10     - read-only frame pointer to access stack
- two-operand instructions like +, -, *, mov, load/store
- implicit prologue/epilogue (invisible stack pointer)
- no floating point, no simd

Short history of extended BPF in kernel:
interpreter in 3.15, x64 JIT in 3.16, arm64 JIT, verifier, bpf syscall in 3.18, more to come in the future.

It's a very small and simple backend.
There is no support for global variables, arbitrary function calls, floating point, varargs,
exceptions, indirect jumps, arbitrary pointer arithmetic, alloca, etc.
From C front-end point of view it's very restricted. It's done on purpose, since kernel
rejects all programs that it cannot prove safe. It rejects programs with loops
and with memory accesses via arbitrary pointers. When kernel accepts the program it is
guaranteed that program will terminate and will not crash the kernel.

This patch implements all 'must have' bits. There are several things on TODO list,
so this is not the end of development.
Most of the code is a boiler plate code, copy-pasted from other backends.
Only odd things are lack or < and <= instructions, specialized load_byte intrinsics
and 'compare and goto' as single instruction.
Current instruction set is fixed, but more instructions can be added in the future.

Signed-off-by: Alexei Starovoitov <alexei.starovoitov@gmail.com>

Subscribers: majnemer, chandlerc, echristo, joerg, pete, rengolin, kristof.beyls, arsenm, t.p.northover, tstellarAMD, aemerson, llvm-commits

Differential Revision: http://reviews.llvm.org/D6494

llvm-svn: 227008
2015-01-24 17:51:26 +00:00
Ulrich Weigand
e2cddfdcd5 Add myself as SystemZ code owner
As agreed with Richard Sandiford, I'm taking over code ownership
for the SystemZ back end from him.

llvm-svn: 224535
2014-12-18 19:27:50 +00:00
Peter Collingbourne
525b311f62 Tom Stellard is now the code owner for libclc.
llvm-svn: 224088
2014-12-12 01:11:48 +00:00
Justin Bogner
b2c4035857 Try again at sorting entries in CODE_OWNERS
I apparently fail at the alphabet, E is not after G, and G isn't even
close to C. Sorry for the noise.

llvm-svn: 223990
2014-12-11 00:52:59 +00:00
Justin Bogner
d264fc60b7 Fix some incorrectly sorted entries in CODE_OWNERS
llvm-svn: 223989
2014-12-11 00:41:15 +00:00
Justin Bogner
dae35c62c1 Add code owners for profiling and coverage
llvm-svn: 223988
2014-12-11 00:37:25 +00:00
Peter Collingbourne
d703111c0e Make myself the code owner for llgo.
llvm-svn: 223691
2014-12-08 20:30:39 +00:00
Joerg Sonnenberger
2789757d73 Add Tom Stellard's role as 3.5 release manager.
llvm-svn: 217659
2014-09-12 08:07:31 +00:00
Joerg Sonnenberger
76886a571f Add a sentence that all entries should include an email address.
Add one for Greg Clayton, Peter Collingbourne, Tobias Grosser and
Jakob Olesen based on recent commits.

llvm-svn: 214762
2014-08-04 19:33:25 +00:00
Hal Finkel
db55e26e77 Claim AA generally as code owner
As per nominations from Chandler and Arnold.

llvm-svn: 213955
2014-07-25 16:45:10 +00:00
Hal Finkel
869fc9c900 Add code owner of scoped-noalias metadata
Add myself as the code owner for the scoped-noalias metadata I've developed.

llvm-svn: 213950
2014-07-25 15:54:55 +00:00
Lang Hames
fa39401520 Make myself code owner of MCJIT.
llvm-svn: 213302
2014-07-17 20:23:31 +00:00
Renato Golin
cb2347c394 ARM Linux support
llvm-svn: 205483
2014-04-02 23:03:28 +00:00
Tim Northover
191bc54499 Update my e-mail address in CODE_OWNERS.TXT
llvm-svn: 203824
2014-03-13 18:04:41 +00:00
Marshall Clow
ca67ca2b57 Add myself as owner for libc++
llvm-svn: 201573
2014-02-18 14:03:17 +00:00
Howard Hinnant
a7223b7c4e Remove myself as owner of libc++
llvm-svn: 201432
2014-02-14 21:09:01 +00:00
Bill Wendling
bc381d3024 Update email address.
llvm-svn: 196369
2013-12-04 09:42:49 +00:00
Daniel Sanders
ae524adc6e As myself as code-owner of the MIPS backend (lib/Target/Mips/*)
llvm-svn: 195915
2013-11-28 09:36:44 +00:00
Hal Finkel
b17e18e8f4 Add loop rerolling code owner
I am the code owner of the loop reroller.

llvm-svn: 195271
2013-11-20 20:54:33 +00:00
Chad Rosier
620e8a1766 Update contact information.
llvm-svn: 194828
2013-11-15 17:35:29 +00:00
Peter Zotov
f10b9b89a5 Add myself to CODE_OWNERS for the OCaml bindings
Per discussion with Chris Lattner

llvm-svn: 194554
2013-11-13 04:24:13 +00:00
Kostya Serebryany
0006f07a9e Add more owners to CODE_OWNERS.TXT (Kostya Serebryany: AddressSanitizer and ThreadSanitizer; Evgeniy Stepanov: MemorySanitizer)
llvm-svn: 185064
2013-06-27 08:47:12 +00:00
Richard Sandiford
8f7222379f Add myself as SystemZ code owner
llvm-svn: 181434
2013-05-08 14:41:29 +00:00
Eric Christopher
869cbc27a1 Fix random typo.
llvm-svn: 179663
2013-04-17 03:18:49 +00:00
Bill Wendling
10e42f6056 Move info to CREDITS.TXT file.
llvm-svn: 179224
2013-04-10 21:56:52 +00:00
Bill Wendling
a4cf35cb28 Marking myself as release manager.
If anyone objects please let me know.

llvm-svn: 179212
2013-04-10 20:13:28 +00:00
Bill Wendling
f2dc5552ff Update
llvm-svn: 177298
2013-03-18 17:47:33 +00:00
Bill Wendling
1e730ba22a Reflect reality.
llvm-svn: 176858
2013-03-12 10:38:39 +00:00
Tim Northover
0d625b1a2c Add myself as code owner of AArch64 backend.
llvm-svn: 174056
2013-01-31 12:51:16 +00:00
Michael J. Spencer
89013e9c1c Update CODE_OWNERS.TXT.
llvm-svn: 172525
2013-01-15 09:37:45 +00:00
Tom Stellard
e042808d95 R600: Add entry in CODE_OWNERS.TXT
llvm-svn: 170594
2012-12-19 22:10:35 +00:00
Andrew Trick
1ebeb0943e Taking ownership of indvars/lsr.
Evan nominated me for this a while back, and no one has offered to
save me from it.

llvm-svn: 169447
2012-12-05 23:32:44 +00:00
Chris Lattner
ff16b782fe clarify that this isn't lld.
llvm-svn: 169130
2012-12-03 16:08:32 +00:00
Bill Wendling
35e0ddd438 Be more clear on what parts of code I own.
llvm-svn: 169050
2012-11-30 23:00:25 +00:00
Bill Wendling
639c448223 Add me as LTO code owner.
llvm-svn: 169046
2012-11-30 22:15:08 +00:00
Richard Smith
bb8b7ba45f Remove some Clang-specific ownership roles.
llvm-svn: 168653
2012-11-27 00:48:36 +00:00
Richard Smith
f2f525765f Move Clang code owners list from llvm/ to cfe/.
llvm-svn: 168640
2012-11-27 00:39:52 +00:00
Venkatraman Govindaraju
4ec389cba2 Added me as the owner of the Sparc backend
llvm-svn: 168504
2012-11-22 22:14:48 +00:00
Rafael Espindola
4c85e96eb6 Mark me as the owner of the gold plugin.
llvm-svn: 168502
2012-11-22 16:43:44 +00:00
Anshuman Dasgupta
ff23e25e53 Add myself as owner of the Hexagon backend.
llvm-svn: 168312
2012-11-19 15:40:22 +00:00
Richard Smith
747188c9de Per agreement with Doug, take ownership of Clang's libSema.
llvm-svn: 168244
2012-11-17 02:26:54 +00:00
Andrew Kaylor
b8274802da Claim ownership of MCJIT
llvm-svn: 168225
2012-11-16 23:56:48 +00:00
Chad Rosier
5126f55e5b Claim the driver.
llvm-svn: 168215
2012-11-16 22:49:27 +00:00
Richard Osborne
75cb6080e1 Add myself as owner of XCore Backend.
llvm-svn: 168201
2012-11-16 21:26:36 +00:00
Chandler Carruth
117a4e4378 Add myself as the code owner for a bunch of stuff.
Notably, I'm reviewing this stuff already, and this makes it clear I'm
on the hook for it.

I'm relying on Eric Christopher and Michael Spencer to help with Support
when there are platform specific issues, but Chris wants a single point
of contact, and I'm happy with that.

llvm-svn: 168164
2012-11-16 11:43:01 +00:00
Galina Kistanova
316c64dd36 Added myself as owner of LLVM Buildbot.
llvm-svn: 168111
2012-11-15 23:16:47 +00:00
Eric Christopher
e91b0e12bf Clarify.
llvm-svn: 168110
2012-11-15 22:57:22 +00:00