Commit Graph

69 Commits

Author SHA1 Message Date
Dan Gohman a74341308f [WebAssembly] Initial WebAssembly backend
This WebAssembly backend is just a skeleton at this time and is not yet
functional.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241022 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-29 23:51:55 +00:00
Andrey Churbanov 96d3361ca8 Added Andrey Churbanov as the owner of the OpenMP runtime library code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236540 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-05 20:17:53 +00:00
David Majnemer 442b025c40 Add myself as the Constant Folder owner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235360 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-20 23:19:10 +00:00
Joerg Sonnenberger 44f89d36e3 Tom is also responsible for the 3.6 branch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232395 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-16 18:15:27 +00:00
Quentin Colombet 40b4f60056 [CODE_OWNERS] Change the ownership of register allocators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231412 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-05 22:15:17 +00:00
Alex Rosenberg 57e7477132 Assume code ownership for the PS4 to ensure patches get reviewed, per the Developer Policy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227340 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-28 18:33:39 +00:00
Alexei Starovoitov 4fe85c7548 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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227008 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-24 17:51:26 +00:00
Ulrich Weigand a75626b56b Add myself as SystemZ code owner
As agreed with Richard Sandiford, I'm taking over code ownership
for the SystemZ back end from him.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224535 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-18 19:27:50 +00:00
Peter Collingbourne c0100322c8 Tom Stellard is now the code owner for libclc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224088 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-12 01:11:48 +00:00
Justin Bogner d1db29860c 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223990 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-11 00:52:59 +00:00
Justin Bogner 901ba4eb0a Fix some incorrectly sorted entries in CODE_OWNERS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223989 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-11 00:41:15 +00:00
Justin Bogner 763f09f62d Add code owners for profiling and coverage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223988 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-11 00:37:25 +00:00
Peter Collingbourne 4ff230e161 Make myself the code owner for llgo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223691 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-08 20:30:39 +00:00
Joerg Sonnenberger 785717c271 Add Tom Stellard's role as 3.5 release manager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217659 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-12 08:07:31 +00:00
Joerg Sonnenberger 6d6454ed38 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214762 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-04 19:33:25 +00:00
Hal Finkel 1d20dd420e Claim AA generally as code owner
As per nominations from Chandler and Arnold.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213955 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-25 16:45:10 +00:00
Hal Finkel ac34a28746 Add code owner of scoped-noalias metadata
Add myself as the code owner for the scoped-noalias metadata I've developed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213950 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-25 15:54:55 +00:00
Lang Hames 822f1b191a Make myself code owner of MCJIT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213302 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-17 20:23:31 +00:00
Renato Golin 3b96414311 ARM Linux support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205483 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-02 23:03:28 +00:00
Tim Northover 1fa9a14308 Update my e-mail address in CODE_OWNERS.TXT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203824 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-13 18:04:41 +00:00
Marshall Clow 2678b21a88 Add myself as owner for libc++
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201573 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-18 14:03:17 +00:00
Howard Hinnant 3b0acd4ef4 Remove myself as owner of libc++
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201432 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-14 21:09:01 +00:00
Bill Wendling af38f91e21 Update email address.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196369 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-04 09:42:49 +00:00
Daniel Sanders f84c481201 As myself as code-owner of the MIPS backend (lib/Target/Mips/*)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195915 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-28 09:36:44 +00:00
Hal Finkel aefd8db634 Add loop rerolling code owner
I am the code owner of the loop reroller.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195271 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-20 20:54:33 +00:00
Chad Rosier 2ba641b957 Update contact information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194828 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-15 17:35:29 +00:00
Peter Zotov 950abf3933 Add myself to CODE_OWNERS for the OCaml bindings
Per discussion with Chris Lattner

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194554 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-13 04:24:13 +00:00
Kostya Serebryany d51a790bec Add more owners to CODE_OWNERS.TXT (Kostya Serebryany: AddressSanitizer and ThreadSanitizer; Evgeniy Stepanov: MemorySanitizer)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185064 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-27 08:47:12 +00:00
Richard Sandiford 0b132946ea Add myself as SystemZ code owner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181434 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-08 14:41:29 +00:00
Eric Christopher 98055c625b Fix random typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179663 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17 03:18:49 +00:00
Bill Wendling 5fc7c98d54 Move info to CREDITS.TXT file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179224 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-10 21:56:52 +00:00
Bill Wendling bccd635fba Marking myself as release manager.
If anyone objects please let me know.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179212 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-10 20:13:28 +00:00
Bill Wendling e04b6c648c Update
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177298 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-18 17:47:33 +00:00
Bill Wendling da6f62950d Reflect reality.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176858 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-12 10:38:39 +00:00
Tim Northover 1711876988 Add myself as code owner of AArch64 backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174056 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-31 12:51:16 +00:00
Michael J. Spencer 6533e78957 Update CODE_OWNERS.TXT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172525 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-15 09:37:45 +00:00
Tom Stellard afb71e4271 R600: Add entry in CODE_OWNERS.TXT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170594 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-19 22:10:35 +00:00
Andrew Trick 6e3411375e Taking ownership of indvars/lsr.
Evan nominated me for this a while back, and no one has offered to
save me from it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169447 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-05 23:32:44 +00:00
Chris Lattner e92a66aa8a clarify that this isn't lld.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169130 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-03 16:08:32 +00:00
Bill Wendling a7a26f3bba Be more clear on what parts of code I own.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169050 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-30 23:00:25 +00:00
Bill Wendling ac9464e936 Add me as LTO code owner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169046 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-30 22:15:08 +00:00
Richard Smith 6f6b97daf6 Remove some Clang-specific ownership roles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168653 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-27 00:48:36 +00:00
Richard Smith 400581a924 Move Clang code owners list from llvm/ to cfe/.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168640 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-27 00:39:52 +00:00
Venkatraman Govindaraju e84b47e41c Added me as the owner of the Sparc backend
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168504 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-22 22:14:48 +00:00
Rafael Espindola 99ba589434 Mark me as the owner of the gold plugin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168502 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-22 16:43:44 +00:00
Anshuman Dasgupta 9fb61cd15b Add myself as owner of the Hexagon backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168312 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-19 15:40:22 +00:00
Richard Smith eed64a9c8d Per agreement with Doug, take ownership of Clang's libSema.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168244 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-17 02:26:54 +00:00
Andrew Kaylor 0180ad6dae Claim ownership of MCJIT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168225 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16 23:56:48 +00:00
Chad Rosier 9de3be85fd Claim the driver.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168215 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16 22:49:27 +00:00
Richard Osborne 6062b2be2c Add myself as owner of XCore Backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168201 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-16 21:26:36 +00:00