You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.179
Former-commit-id: 67aa10e65b237e1c4537630979ee99ebe1374215
This commit is contained in:
parent
d6bde52373
commit
8625704ad8
@ -1 +1 @@
|
|||||||
92818161b082d23ab0542b9c07e11bc4b788d134
|
b43154a902ffd8ed7f23f0665de36273a3c47905
|
@ -1 +1 @@
|
|||||||
bd70a3607f95c332588ac8855986c523cd2d27cb
|
46dbf988837bf2f64744039600660fcfe62f85cf
|
3
external/llvm/.arcconfig
vendored
Normal file
3
external/llvm/.arcconfig
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"conduit_uri" : "https://reviews.llvm.org/"
|
||||||
|
}
|
2
external/llvm/.clang-format
vendored
Normal file
2
external/llvm/.clang-format
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
BasedOnStyle: LLVM
|
||||||
|
|
17
external/llvm/.clang-tidy
vendored
Normal file
17
external/llvm/.clang-tidy
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
Checks: '-*,clang-diagnostic-*,llvm-*,misc-*,-misc-unused-parameters,readability-identifier-naming'
|
||||||
|
CheckOptions:
|
||||||
|
- key: readability-identifier-naming.ClassCase
|
||||||
|
value: CamelCase
|
||||||
|
- key: readability-identifier-naming.EnumCase
|
||||||
|
value: CamelCase
|
||||||
|
- key: readability-identifier-naming.FunctionCase
|
||||||
|
value: camelBack
|
||||||
|
- key: readability-identifier-naming.MemberCase
|
||||||
|
value: CamelCase
|
||||||
|
- key: readability-identifier-naming.ParameterCase
|
||||||
|
value: CamelCase
|
||||||
|
- key: readability-identifier-naming.UnionCase
|
||||||
|
value: CamelCase
|
||||||
|
- key: readability-identifier-naming.VariableCase
|
||||||
|
value: CamelCase
|
||||||
|
|
12
external/llvm/.gitattributes
vendored
Normal file
12
external/llvm/.gitattributes
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# binary files
|
||||||
|
test/Object/Inputs/*.a-* binary
|
||||||
|
test/tools/dsymutil/Inputs/* binary
|
||||||
|
test/tools/llvm-ar/Inputs/*.lib binary
|
||||||
|
test/tools/llvm-objdump/Inputs/*.a binary
|
||||||
|
test/tools/llvm-rc/Inputs/* binary
|
||||||
|
test/tools/llvm-strings/Inputs/numbers binary
|
||||||
|
test/MC/AsmParser/incbin_abcd binary
|
||||||
|
test/YAMLParser/spec-09-02.test binary
|
||||||
|
|
||||||
|
# Windows line ending test
|
||||||
|
test/MC/AsmParser/preserve-comments-crlf.s text eol=crlf
|
76
external/llvm/.gitignore
vendored
Normal file
76
external/llvm/.gitignore
vendored
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
#==============================================================================#
|
||||||
|
# This file specifies intentionally untracked files that git should ignore.
|
||||||
|
# See: http://www.kernel.org/pub/software/scm/git/docs/gitignore.html
|
||||||
|
#
|
||||||
|
# This file is intentionally different from the output of `git svn show-ignore`,
|
||||||
|
# as most of those are useless.
|
||||||
|
#==============================================================================#
|
||||||
|
|
||||||
|
#==============================================================================#
|
||||||
|
# File extensions to be ignored anywhere in the tree.
|
||||||
|
#==============================================================================#
|
||||||
|
# Temp files created by most text editors.
|
||||||
|
*~
|
||||||
|
# Merge files created by git.
|
||||||
|
*.orig
|
||||||
|
# Byte compiled python modules.
|
||||||
|
*.pyc
|
||||||
|
# vim swap files
|
||||||
|
.*.sw?
|
||||||
|
.sw?
|
||||||
|
#OS X specific files.
|
||||||
|
.DS_store
|
||||||
|
|
||||||
|
# Nested build directory
|
||||||
|
/build
|
||||||
|
|
||||||
|
#==============================================================================#
|
||||||
|
# Explicit files to ignore (only matches one).
|
||||||
|
#==============================================================================#
|
||||||
|
# Various tag programs
|
||||||
|
/tags
|
||||||
|
/TAGS
|
||||||
|
/GPATH
|
||||||
|
/GRTAGS
|
||||||
|
/GSYMS
|
||||||
|
/GTAGS
|
||||||
|
.gitusers
|
||||||
|
autom4te.cache
|
||||||
|
cscope.files
|
||||||
|
cscope.out
|
||||||
|
autoconf/aclocal.m4
|
||||||
|
autoconf/autom4te.cache
|
||||||
|
/compile_commands.json
|
||||||
|
|
||||||
|
#==============================================================================#
|
||||||
|
# Directories to ignore (do not add trailing '/'s, they skip symlinks).
|
||||||
|
#==============================================================================#
|
||||||
|
# External projects that are tracked independently.
|
||||||
|
projects/*
|
||||||
|
!projects/*.*
|
||||||
|
!projects/Makefile
|
||||||
|
runtimes/*
|
||||||
|
!runtimes/*.*
|
||||||
|
# Clang, which is tracked independently.
|
||||||
|
tools/clang
|
||||||
|
# LLDB, which is tracked independently.
|
||||||
|
tools/lldb
|
||||||
|
# lld, which is tracked independently.
|
||||||
|
tools/lld
|
||||||
|
# llgo, which is tracked independently.
|
||||||
|
tools/llgo
|
||||||
|
# Polly, which is tracked independently.
|
||||||
|
tools/polly
|
||||||
|
# avrlit, which is tracked independently.
|
||||||
|
tools/avrlit
|
||||||
|
# Sphinx build tree, if building in-source dir.
|
||||||
|
docs/_build
|
||||||
|
# VS2017 and VSCode config files.
|
||||||
|
.vscode
|
||||||
|
.vs
|
||||||
|
|
||||||
|
#==============================================================================#
|
||||||
|
# Files created in tree by the Go bindings.
|
||||||
|
#==============================================================================#
|
||||||
|
bindings/go/llvm/llvm_config.go
|
||||||
|
bindings/go/llvm/workdir
|
1027
external/llvm/CMakeLists.txt
vendored
Normal file
1027
external/llvm/CMakeLists.txt
vendored
Normal file
File diff suppressed because it is too large
Load Diff
215
external/llvm/CODE_OWNERS.TXT
vendored
Normal file
215
external/llvm/CODE_OWNERS.TXT
vendored
Normal file
@ -0,0 +1,215 @@
|
|||||||
|
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), snail-mail address
|
||||||
|
(S) and (I) IRC handle. Each entry should contain at least the (N), (E) and
|
||||||
|
(D) fields.
|
||||||
|
|
||||||
|
N: Justin Bogner
|
||||||
|
E: mail@justinbogner.com
|
||||||
|
D: InstrProfiling and related parts of ProfileData
|
||||||
|
D: SelectionDAG (lib/CodeGen/SelectionDAG/*)
|
||||||
|
|
||||||
|
N: Alex Bradbury
|
||||||
|
E: asb@lowrisc.org
|
||||||
|
D: RISC-V backend (lib/Target/RISCV/*)
|
||||||
|
|
||||||
|
N: Matthias Braun
|
||||||
|
E: matze@braunis.de
|
||||||
|
I: MatzeB
|
||||||
|
D: Instruction Scheduling
|
||||||
|
|
||||||
|
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, inline assembly
|
||||||
|
|
||||||
|
N: Andrey Churbanov
|
||||||
|
E: andrey.churbanov@intel.com
|
||||||
|
D: OpenMP runtime library
|
||||||
|
|
||||||
|
N: Greg Clayton
|
||||||
|
E: clayborg@gmail.com
|
||||||
|
D: LLDB
|
||||||
|
|
||||||
|
N: Pete Couperus
|
||||||
|
E: petecoup@synopsys.com
|
||||||
|
D: ARC backend (lib/Target/ARC/*)
|
||||||
|
|
||||||
|
N: Sanjoy Das
|
||||||
|
E: sanjoy@playingwithpointers.com
|
||||||
|
D: IndVar Simplify, Scalar Evolution
|
||||||
|
|
||||||
|
N: Marshall Clow
|
||||||
|
E: mclow.lists@gmail.com
|
||||||
|
D: libc++
|
||||||
|
|
||||||
|
N: Peter Collingbourne
|
||||||
|
E: peter@pcc.me.uk
|
||||||
|
D: llgo, libLTO (lib/LTO/* tools/lto/*), LLVM Bitcode (lib/Bitcode/* include/llvm/Bitcode/*)
|
||||||
|
|
||||||
|
N: Quentin Colombet
|
||||||
|
E: qcolombet@apple.com
|
||||||
|
D: Loop Strength Reduction, Register allocators
|
||||||
|
|
||||||
|
N: Simon Dardis
|
||||||
|
E: simon.dardis@mips.com
|
||||||
|
D: MIPS Backend (lib/Target/Mips/*)
|
||||||
|
|
||||||
|
N: Duncan P. N. Exon Smith
|
||||||
|
E: dexonsmith@apple.com
|
||||||
|
D: Branch weights and BlockFrequencyInfo
|
||||||
|
|
||||||
|
N: Hal Finkel
|
||||||
|
E: hfinkel@anl.gov
|
||||||
|
D: 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, Orcish Warchief
|
||||||
|
|
||||||
|
N: Teresa Johnson
|
||||||
|
E: tejohnson@google.com
|
||||||
|
D: Gold plugin (tools/gold/*) and IR Linker
|
||||||
|
|
||||||
|
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: Michael Kuperstein
|
||||||
|
E: mkuper@google.com
|
||||||
|
D: Loop Vectorizer
|
||||||
|
|
||||||
|
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: Robert Lytton
|
||||||
|
E: robert@xmos.com
|
||||||
|
D: XCore Backend
|
||||||
|
|
||||||
|
N: David Majnemer
|
||||||
|
E: david.majnemer@gmail.com
|
||||||
|
D: IR Constant Folder, InstCombine
|
||||||
|
|
||||||
|
N: Dylan McKay
|
||||||
|
E: me@dylanmckay.io
|
||||||
|
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: Krzysztof Parzyszek
|
||||||
|
E: kparzysz@codeaurora.org
|
||||||
|
D: Hexagon Backend
|
||||||
|
|
||||||
|
N: Jacques Pienaar
|
||||||
|
E: jpienaar@google.com
|
||||||
|
D: Lanai 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: 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: tstellar@redhat.com
|
||||||
|
D: Stable release management (x.y.[1-9] releases), AMDGPU Backend, libclc
|
||||||
|
|
||||||
|
N: Evgeniy Stepanov
|
||||||
|
E: eugenis@google.com
|
||||||
|
D: MemorySanitizer (LLVM part)
|
||||||
|
|
||||||
|
N: Craig Topper
|
||||||
|
E: craig.topper@gmail.com
|
||||||
|
E: craig.topper@intel.com
|
||||||
|
D: X86 Backend
|
||||||
|
|
||||||
|
N: Ulrich Weigand
|
||||||
|
E: uweigand@de.ibm.com
|
||||||
|
D: SystemZ Backend
|
||||||
|
|
||||||
|
N: Hans Wennborg
|
||||||
|
E: hans@chromium.org
|
||||||
|
D: Release management (x.y.0 releases)
|
||||||
|
|
||||||
|
N: whitequark
|
||||||
|
E: whitequark@whitequark.org
|
||||||
|
D: OCaml bindings
|
482
external/llvm/CREDITS.TXT
vendored
Normal file
482
external/llvm/CREDITS.TXT
vendored
Normal file
@ -0,0 +1,482 @@
|
|||||||
|
This file is a partial list of people who have contributed to the LLVM
|
||||||
|
project. If you have contributed a patch or made some other contribution to
|
||||||
|
LLVM, please submit a patch to this file to add yourself, and it will be
|
||||||
|
done!
|
||||||
|
|
||||||
|
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), snail-mail address
|
||||||
|
(S), and (I) IRC handle.
|
||||||
|
|
||||||
|
N: Vikram Adve
|
||||||
|
E: vadve@cs.uiuc.edu
|
||||||
|
W: http://www.cs.uiuc.edu/~vadve/
|
||||||
|
D: The Sparc64 backend, provider of much wisdom, and motivator for LLVM
|
||||||
|
|
||||||
|
N: Owen Anderson
|
||||||
|
E: resistor@mac.com
|
||||||
|
D: LCSSA pass and related LoopUnswitch work
|
||||||
|
D: GVNPRE pass, DataLayout refactoring, random improvements
|
||||||
|
|
||||||
|
N: Henrik Bach
|
||||||
|
D: MingW Win32 API portability layer
|
||||||
|
|
||||||
|
N: Aaron Ballman
|
||||||
|
E: aaron@aaronballman.com
|
||||||
|
D: __declspec attributes, Windows support, general bug fixing
|
||||||
|
|
||||||
|
N: Nate Begeman
|
||||||
|
E: natebegeman@mac.com
|
||||||
|
D: PowerPC backend developer
|
||||||
|
D: Target-independent code generator and analysis improvements
|
||||||
|
|
||||||
|
N: Daniel Berlin
|
||||||
|
E: dberlin@dberlin.org
|
||||||
|
D: ET-Forest implementation.
|
||||||
|
D: Sparse bitmap
|
||||||
|
|
||||||
|
N: David Blaikie
|
||||||
|
E: dblaikie@gmail.com
|
||||||
|
D: General bug fixing/fit & finish, mostly in Clang
|
||||||
|
|
||||||
|
N: Neil Booth
|
||||||
|
E: neil@daikokuya.co.uk
|
||||||
|
D: APFloat implementation.
|
||||||
|
|
||||||
|
N: Alex Bradbury
|
||||||
|
E: asb@lowrisc.org
|
||||||
|
D: RISC-V backend
|
||||||
|
|
||||||
|
N: Misha Brukman
|
||||||
|
E: brukman+llvm@uiuc.edu
|
||||||
|
W: http://misha.brukman.net
|
||||||
|
D: Portions of X86 and Sparc JIT compilers, PowerPC backend
|
||||||
|
D: Incremental bitcode loader
|
||||||
|
|
||||||
|
N: Cameron Buschardt
|
||||||
|
E: buschard@uiuc.edu
|
||||||
|
D: The `mem2reg' pass - promotes values stored in memory to registers
|
||||||
|
|
||||||
|
N: Brendon Cahoon
|
||||||
|
E: bcahoon@codeaurora.org
|
||||||
|
D: Loop unrolling with run-time trip counts.
|
||||||
|
|
||||||
|
N: Chandler Carruth
|
||||||
|
E: chandlerc@gmail.com
|
||||||
|
E: chandlerc@google.com
|
||||||
|
D: Hashing algorithms and interfaces
|
||||||
|
D: Inline cost analysis
|
||||||
|
D: Machine block placement pass
|
||||||
|
D: SROA
|
||||||
|
|
||||||
|
N: Casey Carter
|
||||||
|
E: ccarter@uiuc.edu
|
||||||
|
D: Fixes to the Reassociation pass, various improvement patches
|
||||||
|
|
||||||
|
N: Evan Cheng
|
||||||
|
E: evan.cheng@apple.com
|
||||||
|
D: ARM and X86 backends
|
||||||
|
D: Instruction scheduler improvements
|
||||||
|
D: Register allocator improvements
|
||||||
|
D: Loop optimizer improvements
|
||||||
|
D: Target-independent code generator improvements
|
||||||
|
|
||||||
|
N: Dan Villiom Podlaski Christiansen
|
||||||
|
E: danchr@gmail.com
|
||||||
|
E: danchr@cs.au.dk
|
||||||
|
W: http://villiom.dk
|
||||||
|
D: LLVM Makefile improvements
|
||||||
|
D: Clang diagnostic & driver tweaks
|
||||||
|
S: Aarhus, Denmark
|
||||||
|
|
||||||
|
N: Jeff Cohen
|
||||||
|
E: jeffc@jolt-lang.org
|
||||||
|
W: http://jolt-lang.org
|
||||||
|
D: Native Win32 API portability layer
|
||||||
|
|
||||||
|
N: John T. Criswell
|
||||||
|
E: criswell@uiuc.edu
|
||||||
|
D: Original Autoconf support, documentation improvements, bug fixes
|
||||||
|
|
||||||
|
N: Anshuman Dasgupta
|
||||||
|
E: adasgupt@codeaurora.org
|
||||||
|
D: Deterministic finite automaton based infrastructure for VLIW packetization
|
||||||
|
|
||||||
|
N: Stefanus Du Toit
|
||||||
|
E: stefanus.du.toit@intel.com
|
||||||
|
D: Bug fixes and minor improvements
|
||||||
|
|
||||||
|
N: Rafael Avila de Espindola
|
||||||
|
E: rafael.espindola@gmail.com
|
||||||
|
D: The ARM backend
|
||||||
|
|
||||||
|
N: Dave Estes
|
||||||
|
E: cestes@codeaurora.org
|
||||||
|
D: AArch64 machine description for Cortex-A53
|
||||||
|
|
||||||
|
N: Alkis Evlogimenos
|
||||||
|
E: alkis@evlogimenos.com
|
||||||
|
D: Linear scan register allocator, many codegen improvements, Java frontend
|
||||||
|
|
||||||
|
N: Hal Finkel
|
||||||
|
E: hfinkel@anl.gov
|
||||||
|
D: Basic-block autovectorization, PowerPC backend improvements
|
||||||
|
|
||||||
|
N: Eric Fiselier
|
||||||
|
E: eric@efcs.ca
|
||||||
|
D: LIT patches and documentation.
|
||||||
|
|
||||||
|
N: Ryan Flynn
|
||||||
|
E: pizza@parseerror.com
|
||||||
|
D: Miscellaneous bug fixes
|
||||||
|
|
||||||
|
N: Brian Gaeke
|
||||||
|
E: gaeke@uiuc.edu
|
||||||
|
W: http://www.students.uiuc.edu/~gaeke/
|
||||||
|
D: Portions of X86 static and JIT compilers; initial SparcV8 backend
|
||||||
|
D: Dynamic trace optimizer
|
||||||
|
D: FreeBSD/X86 compatibility fixes, the llvm-nm tool
|
||||||
|
|
||||||
|
N: Nicolas Geoffray
|
||||||
|
E: nicolas.geoffray@lip6.fr
|
||||||
|
W: http://www-src.lip6.fr/homepages/Nicolas.Geoffray/
|
||||||
|
D: PPC backend fixes for Linux
|
||||||
|
|
||||||
|
N: Louis Gerbarg
|
||||||
|
E: lgg@apple.com
|
||||||
|
D: Portions of the PowerPC backend
|
||||||
|
|
||||||
|
N: Saem Ghani
|
||||||
|
E: saemghani@gmail.com
|
||||||
|
D: Callgraph class cleanups
|
||||||
|
|
||||||
|
N: Mikhail Glushenkov
|
||||||
|
E: foldr@codedgers.com
|
||||||
|
D: Author of llvmc2
|
||||||
|
|
||||||
|
N: Dan Gohman
|
||||||
|
E: sunfish@mozilla.com
|
||||||
|
D: Miscellaneous bug fixes
|
||||||
|
D: WebAssembly Backend
|
||||||
|
|
||||||
|
N: David Goodwin
|
||||||
|
E: david@goodwinz.net
|
||||||
|
D: Thumb-2 code generator
|
||||||
|
|
||||||
|
N: David Greene
|
||||||
|
E: greened@obbligato.org
|
||||||
|
D: Miscellaneous bug fixes
|
||||||
|
D: Register allocation refactoring
|
||||||
|
|
||||||
|
N: Gabor Greif
|
||||||
|
E: ggreif@gmail.com
|
||||||
|
D: Improvements for space efficiency
|
||||||
|
|
||||||
|
N: James Grosbach
|
||||||
|
E: grosbach@apple.com
|
||||||
|
I: grosbach
|
||||||
|
D: SjLj exception handling support
|
||||||
|
D: General fixes and improvements for the ARM back-end
|
||||||
|
D: MCJIT
|
||||||
|
D: ARM integrated assembler and assembly parser
|
||||||
|
D: Led effort for the backend formerly known as ARM64
|
||||||
|
|
||||||
|
N: Lang Hames
|
||||||
|
E: lhames@gmail.com
|
||||||
|
D: PBQP-based register allocator
|
||||||
|
|
||||||
|
N: Gordon Henriksen
|
||||||
|
E: gordonhenriksen@mac.com
|
||||||
|
D: Pluggable GC support
|
||||||
|
D: C interface
|
||||||
|
D: Ocaml bindings
|
||||||
|
|
||||||
|
N: Raul Fernandes Herbster
|
||||||
|
E: raul@dsc.ufcg.edu.br
|
||||||
|
D: JIT support for ARM
|
||||||
|
|
||||||
|
N: Paolo Invernizzi
|
||||||
|
E: arathorn@fastwebnet.it
|
||||||
|
D: Visual C++ compatibility fixes
|
||||||
|
|
||||||
|
N: Patrick Jenkins
|
||||||
|
E: patjenk@wam.umd.edu
|
||||||
|
D: Nightly Tester
|
||||||
|
|
||||||
|
N: Dale Johannesen
|
||||||
|
E: dalej@apple.com
|
||||||
|
D: ARM constant islands improvements
|
||||||
|
D: Tail merging improvements
|
||||||
|
D: Rewrite X87 back end
|
||||||
|
D: Use APFloat for floating point constants widely throughout compiler
|
||||||
|
D: Implement X87 long double
|
||||||
|
|
||||||
|
N: Brad Jones
|
||||||
|
E: kungfoomaster@nondot.org
|
||||||
|
D: Support for packed types
|
||||||
|
|
||||||
|
N: Rod Kay
|
||||||
|
E: rkay@auroraux.org
|
||||||
|
D: Author of LLVM Ada bindings
|
||||||
|
|
||||||
|
N: Eric Kidd
|
||||||
|
W: http://randomhacks.net/
|
||||||
|
D: llvm-config script
|
||||||
|
|
||||||
|
N: Anton Korobeynikov
|
||||||
|
E: anton at korobeynikov dot info
|
||||||
|
D: Mingw32 fixes, cross-compiling support, stdcall/fastcall calling conv.
|
||||||
|
D: x86/linux PIC codegen, aliases, regparm/visibility attributes
|
||||||
|
D: Switch lowering refactoring
|
||||||
|
|
||||||
|
N: Sumant Kowshik
|
||||||
|
E: kowshik@uiuc.edu
|
||||||
|
D: Author of the original C backend
|
||||||
|
|
||||||
|
N: Benjamin Kramer
|
||||||
|
E: benny.kra@gmail.com
|
||||||
|
D: Miscellaneous bug fixes
|
||||||
|
|
||||||
|
N: Sundeep Kushwaha
|
||||||
|
E: sundeepk@codeaurora.org
|
||||||
|
D: Implemented DFA-based target independent VLIW packetizer
|
||||||
|
|
||||||
|
N: Christopher Lamb
|
||||||
|
E: christopher.lamb@gmail.com
|
||||||
|
D: aligned load/store support, parts of noalias and restrict support
|
||||||
|
D: vreg subreg infrastructure, X86 codegen improvements based on subregs
|
||||||
|
D: address spaces
|
||||||
|
|
||||||
|
N: Jim Laskey
|
||||||
|
E: jlaskey@apple.com
|
||||||
|
D: Improvements to the PPC backend, instruction scheduling
|
||||||
|
D: Debug and Dwarf implementation
|
||||||
|
D: Auto upgrade mangler
|
||||||
|
D: llvm-gcc4 svn wrangler
|
||||||
|
|
||||||
|
N: Chris Lattner
|
||||||
|
E: sabre@nondot.org
|
||||||
|
W: http://nondot.org/~sabre/
|
||||||
|
D: Primary architect of LLVM
|
||||||
|
|
||||||
|
N: Tanya Lattner (Tanya Brethour)
|
||||||
|
E: tonic@nondot.org
|
||||||
|
W: http://nondot.org/~tonic/
|
||||||
|
D: The initial llvm-ar tool, converted regression testsuite to dejagnu
|
||||||
|
D: Modulo scheduling in the SparcV9 backend
|
||||||
|
D: Release manager (1.7+)
|
||||||
|
|
||||||
|
N: Sylvestre Ledru
|
||||||
|
E: sylvestre@debian.org
|
||||||
|
W: http://sylvestre.ledru.info/
|
||||||
|
W: http://apt.llvm.org/
|
||||||
|
D: Debian and Ubuntu packaging
|
||||||
|
D: Continuous integration with jenkins
|
||||||
|
|
||||||
|
N: Andrew Lenharth
|
||||||
|
E: alenhar2@cs.uiuc.edu
|
||||||
|
W: http://www.lenharth.org/~andrewl/
|
||||||
|
D: Alpha backend
|
||||||
|
D: Sampling based profiling
|
||||||
|
|
||||||
|
N: Nick Lewycky
|
||||||
|
E: nicholas@mxc.ca
|
||||||
|
D: PredicateSimplifier pass
|
||||||
|
|
||||||
|
N: Tony Linthicum, et. al.
|
||||||
|
E: tlinth@codeaurora.org
|
||||||
|
D: Backend for Qualcomm's Hexagon VLIW processor.
|
||||||
|
|
||||||
|
N: Bruno Cardoso Lopes
|
||||||
|
E: bruno.cardoso@gmail.com
|
||||||
|
I: bruno
|
||||||
|
W: http://brunocardoso.cc
|
||||||
|
D: Mips backend
|
||||||
|
D: Random ARM integrated assembler and assembly parser improvements
|
||||||
|
D: General X86 AVX1 support
|
||||||
|
|
||||||
|
N: Duraid Madina
|
||||||
|
E: duraid@octopus.com.au
|
||||||
|
W: http://kinoko.c.u-tokyo.ac.jp/~duraid/
|
||||||
|
D: IA64 backend, BigBlock register allocator
|
||||||
|
|
||||||
|
N: John McCall
|
||||||
|
E: rjmccall@apple.com
|
||||||
|
D: Clang semantic analysis and IR generation
|
||||||
|
|
||||||
|
N: Michael McCracken
|
||||||
|
E: michael.mccracken@gmail.com
|
||||||
|
D: Line number support for llvmgcc
|
||||||
|
|
||||||
|
N: Vladimir Merzliakov
|
||||||
|
E: wanderer@rsu.ru
|
||||||
|
D: Test suite fixes for FreeBSD
|
||||||
|
|
||||||
|
N: Scott Michel
|
||||||
|
E: scottm@aero.org
|
||||||
|
D: Added STI Cell SPU backend.
|
||||||
|
|
||||||
|
N: Kai Nacke
|
||||||
|
E: kai@redstar.de
|
||||||
|
D: Support for implicit TLS model used with MS VC runtime
|
||||||
|
D: Dumping of Win64 EH structures
|
||||||
|
|
||||||
|
N: Takumi Nakamura
|
||||||
|
I: chapuni
|
||||||
|
E: geek4civic@gmail.com
|
||||||
|
E: chapuni@hf.rim.or.jp
|
||||||
|
D: Maintaining the Git monorepo
|
||||||
|
W: https://github.com/llvm-project/
|
||||||
|
S: Ebina, Japan
|
||||||
|
|
||||||
|
N: Edward O'Callaghan
|
||||||
|
E: eocallaghan@auroraux.org
|
||||||
|
W: http://www.auroraux.org
|
||||||
|
D: Add Clang support with various other improvements to utils/NewNightlyTest.pl
|
||||||
|
D: Fix and maintain Solaris & AuroraUX support for llvm, various build warnings
|
||||||
|
D: and error clean ups.
|
||||||
|
|
||||||
|
N: Morten Ofstad
|
||||||
|
E: morten@hue.no
|
||||||
|
D: Visual C++ compatibility fixes
|
||||||
|
|
||||||
|
N: Jakob Stoklund Olesen
|
||||||
|
E: stoklund@2pi.dk
|
||||||
|
D: Machine code verifier
|
||||||
|
D: Blackfin backend
|
||||||
|
D: Fast register allocator
|
||||||
|
D: Greedy register allocator
|
||||||
|
|
||||||
|
N: Richard Osborne
|
||||||
|
E: richard@xmos.com
|
||||||
|
D: XCore backend
|
||||||
|
|
||||||
|
N: Piotr Padlewski
|
||||||
|
E: piotr.padlewski@gmail.com
|
||||||
|
D: !invariant.group metadata and other intrinsics for devirtualization in clang
|
||||||
|
|
||||||
|
N: Devang Patel
|
||||||
|
E: dpatel@apple.com
|
||||||
|
D: LTO tool, PassManager rewrite, Loop Pass Manager, Loop Rotate
|
||||||
|
D: GCC PCH Integration (llvm-gcc), llvm-gcc improvements
|
||||||
|
D: Optimizer improvements, Loop Index Split
|
||||||
|
|
||||||
|
N: Ana Pazos
|
||||||
|
E: apazos@codeaurora.org
|
||||||
|
D: Fixes and improvements to the AArch64 backend
|
||||||
|
|
||||||
|
N: Wesley Peck
|
||||||
|
E: peckw@wesleypeck.com
|
||||||
|
W: http://wesleypeck.com/
|
||||||
|
D: MicroBlaze backend
|
||||||
|
|
||||||
|
N: Francois Pichet
|
||||||
|
E: pichet2000@gmail.com
|
||||||
|
D: MSVC support
|
||||||
|
|
||||||
|
N: Adrian Prantl
|
||||||
|
E: aprantl@apple.com
|
||||||
|
D: Debug Information
|
||||||
|
|
||||||
|
N: Vladimir Prus
|
||||||
|
W: http://vladimir_prus.blogspot.com
|
||||||
|
E: ghost@cs.msu.su
|
||||||
|
D: Made inst_iterator behave like a proper iterator, LowerConstantExprs pass
|
||||||
|
|
||||||
|
N: Kalle Raiskila
|
||||||
|
E: kalle.rasikila@nokia.com
|
||||||
|
D: Some bugfixes to CellSPU
|
||||||
|
|
||||||
|
N: Xerxes Ranby
|
||||||
|
E: xerxes@zafena.se
|
||||||
|
D: Cmake dependency chain and various bug fixes
|
||||||
|
|
||||||
|
N: Alex Rosenberg
|
||||||
|
E: alexr@leftfield.org
|
||||||
|
I: arosenberg
|
||||||
|
D: ARM calling conventions rewrite, hard float support
|
||||||
|
|
||||||
|
N: Chad Rosier
|
||||||
|
E: mcrosier@codeaurora.org
|
||||||
|
I: mcrosier
|
||||||
|
D: AArch64 fast instruction selection pass
|
||||||
|
D: Fixes and improvements to the ARM fast-isel pass
|
||||||
|
D: Fixes and improvements to the AArch64 backend
|
||||||
|
|
||||||
|
N: Nadav Rotem
|
||||||
|
E: nadav.rotem@me.com
|
||||||
|
D: X86 code generation improvements, Loop Vectorizer, SLP Vectorizer
|
||||||
|
|
||||||
|
N: Roman Samoilov
|
||||||
|
E: roman@codedgers.com
|
||||||
|
D: MSIL backend
|
||||||
|
|
||||||
|
N: Duncan Sands
|
||||||
|
E: baldrick@free.fr
|
||||||
|
I: baldrick
|
||||||
|
D: Ada support in llvm-gcc
|
||||||
|
D: Dragonegg plugin
|
||||||
|
D: Exception handling improvements
|
||||||
|
D: Type legalizer rewrite
|
||||||
|
|
||||||
|
N: Ruchira Sasanka
|
||||||
|
E: sasanka@uiuc.edu
|
||||||
|
D: Graph coloring register allocator for the Sparc64 backend
|
||||||
|
|
||||||
|
N: Arnold Schwaighofer
|
||||||
|
E: arnold.schwaighofer@gmail.com
|
||||||
|
D: Tail call optimization for the x86 backend
|
||||||
|
|
||||||
|
N: Shantonu Sen
|
||||||
|
E: ssen@apple.com
|
||||||
|
D: Miscellaneous bug fixes
|
||||||
|
|
||||||
|
N: Anand Shukla
|
||||||
|
E: ashukla@cs.uiuc.edu
|
||||||
|
D: The `paths' pass
|
||||||
|
|
||||||
|
N: Michael J. Spencer
|
||||||
|
E: bigcheesegs@gmail.com
|
||||||
|
D: Shepherding Windows COFF support into MC.
|
||||||
|
D: Lots of Windows stuff.
|
||||||
|
|
||||||
|
N: Reid Spencer
|
||||||
|
E: rspencer@reidspencer.com
|
||||||
|
W: http://reidspencer.com/
|
||||||
|
D: Lots of stuff, see: http://wiki.llvm.org/index.php/User:Reid
|
||||||
|
|
||||||
|
N: Alp Toker
|
||||||
|
E: alp@nuanti.com
|
||||||
|
W: http://atoker.com/
|
||||||
|
D: C++ frontend next generation standards implementation
|
||||||
|
|
||||||
|
N: Craig Topper
|
||||||
|
E: craig.topper@gmail.com
|
||||||
|
D: X86 codegen and disassembler improvements. AVX2 support.
|
||||||
|
|
||||||
|
N: Edwin Torok
|
||||||
|
E: edwintorok@gmail.com
|
||||||
|
D: Miscellaneous bug fixes
|
||||||
|
|
||||||
|
N: Adam Treat
|
||||||
|
E: manyoso@yahoo.com
|
||||||
|
D: C++ bugs filed, and C++ front-end bug fixes.
|
||||||
|
|
||||||
|
N: Andrew Trick
|
||||||
|
E: atrick@apple.com
|
||||||
|
D: Instruction Scheduling, ...
|
||||||
|
|
||||||
|
N: Lauro Ramos Venancio
|
||||||
|
E: lauro.venancio@indt.org.br
|
||||||
|
D: ARM backend improvements
|
||||||
|
D: Thread Local Storage implementation
|
||||||
|
|
||||||
|
N: Bill Wendling
|
||||||
|
I: wendling
|
||||||
|
E: isanbard@gmail.com
|
||||||
|
D: Release manager, IR Linker, LTO
|
||||||
|
D: Bunches of stuff
|
||||||
|
|
||||||
|
N: Bob Wilson
|
||||||
|
E: bob.wilson@acm.org
|
||||||
|
D: Advanced SIMD (NEON) support in the ARM backend.
|
68
external/llvm/LICENSE.TXT
vendored
Normal file
68
external/llvm/LICENSE.TXT
vendored
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
==============================================================================
|
||||||
|
LLVM Release License
|
||||||
|
==============================================================================
|
||||||
|
University of Illinois/NCSA
|
||||||
|
Open Source License
|
||||||
|
|
||||||
|
Copyright (c) 2003-2017 University of Illinois at Urbana-Champaign.
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Developed by:
|
||||||
|
|
||||||
|
LLVM Team
|
||||||
|
|
||||||
|
University of Illinois at Urbana-Champaign
|
||||||
|
|
||||||
|
http://llvm.org
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal with
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||||
|
of the Software, and to permit persons to whom the Software is furnished to do
|
||||||
|
so, subject to the following conditions:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimers.
|
||||||
|
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimers in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
* Neither the names of the LLVM Team, University of Illinois at
|
||||||
|
Urbana-Champaign, nor the names of its contributors may be used to
|
||||||
|
endorse or promote products derived from this Software without specific
|
||||||
|
prior written permission.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
Copyrights and Licenses for Third Party Software Distributed with LLVM:
|
||||||
|
==============================================================================
|
||||||
|
The LLVM software contains code written by third parties. Such software will
|
||||||
|
have its own individual LICENSE.TXT file in the directory in which it appears.
|
||||||
|
This file will describe the copyrights, license, and restrictions which apply
|
||||||
|
to that code.
|
||||||
|
|
||||||
|
The disclaimer of warranty in the University of Illinois Open Source License
|
||||||
|
applies to all code in the LLVM Distribution, and nothing in any of the
|
||||||
|
other licenses gives permission to use the names of the LLVM Team or the
|
||||||
|
University of Illinois to endorse or promote products derived from this
|
||||||
|
Software.
|
||||||
|
|
||||||
|
The following pieces of software have additional or alternate copyrights,
|
||||||
|
licenses, and/or restrictions:
|
||||||
|
|
||||||
|
Program Directory
|
||||||
|
------- ---------
|
||||||
|
Google Test llvm/utils/unittest/googletest
|
||||||
|
OpenBSD regex llvm/lib/Support/{reg*, COPYRIGHT.regex}
|
||||||
|
pyyaml tests llvm/test/YAMLParser/{*.data, LICENSE.TXT}
|
||||||
|
ARM contributions llvm/lib/Target/ARM/LICENSE.TXT
|
||||||
|
md5 contributions llvm/lib/Support/MD5.cpp llvm/include/llvm/Support/MD5.h
|
24
external/llvm/LLVMBuild.txt
vendored
Normal file
24
external/llvm/LLVMBuild.txt
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
;===- ./LLVMBuild.txt ------------------------------------------*- Conf -*--===;
|
||||||
|
;
|
||||||
|
; The LLVM Compiler Infrastructure
|
||||||
|
;
|
||||||
|
; This file is distributed under the University of Illinois Open Source
|
||||||
|
; License. See LICENSE.TXT for details.
|
||||||
|
;
|
||||||
|
;===------------------------------------------------------------------------===;
|
||||||
|
;
|
||||||
|
; This is an LLVMBuild description file for the components in this subdirectory.
|
||||||
|
;
|
||||||
|
; For more information on the LLVMBuild system, please see:
|
||||||
|
;
|
||||||
|
; http://llvm.org/docs/LLVMBuild.html
|
||||||
|
;
|
||||||
|
;===------------------------------------------------------------------------===;
|
||||||
|
|
||||||
|
[common]
|
||||||
|
subdirectories = bindings docs examples lib projects tools utils
|
||||||
|
|
||||||
|
[component_0]
|
||||||
|
type = Group
|
||||||
|
name = Miscellaneous
|
||||||
|
parent = $ROOT
|
19
external/llvm/README.txt
vendored
Normal file
19
external/llvm/README.txt
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
Low Level Virtual Machine (LLVM)
|
||||||
|
================================
|
||||||
|
|
||||||
|
This directory and its subdirectories contain source code for LLVM,
|
||||||
|
a toolkit for the construction of highly optimized compilers,
|
||||||
|
optimizers, and runtime environments.
|
||||||
|
|
||||||
|
LLVM is open source software. You may freely distribute it under the terms of
|
||||||
|
the license agreement found in LICENSE.txt.
|
||||||
|
|
||||||
|
Please see the documentation provided in docs/ for further
|
||||||
|
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
|
||||||
|
started with LLVM and docs/README.txt for an overview of LLVM's
|
||||||
|
documentation setup.
|
||||||
|
|
||||||
|
If you are writing a package for LLVM, see docs/Packaging.rst for our
|
||||||
|
suggestions.
|
||||||
|
|
||||||
|
|
52
external/llvm/RELEASE_TESTERS.TXT
vendored
Normal file
52
external/llvm/RELEASE_TESTERS.TXT
vendored
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
This file is a list of the people responsible for ensuring that targets and
|
||||||
|
environments get tested and validated during the release process.
|
||||||
|
|
||||||
|
They will also, in conjunction with the release manager and the code owners,
|
||||||
|
accept patches into stable release branches, tag critical bugs and release
|
||||||
|
stoppers as well as make sure that no regressions were observed on their
|
||||||
|
targets since the last release.
|
||||||
|
|
||||||
|
N: Ben Pope
|
||||||
|
E: benpope81@gmail.com
|
||||||
|
T: x86
|
||||||
|
O: Ubuntu
|
||||||
|
|
||||||
|
N: Sylvestre Ledru
|
||||||
|
E: sylvestre@debian.org
|
||||||
|
T: x86
|
||||||
|
O: Debian
|
||||||
|
|
||||||
|
N: Nikola Smiljanic
|
||||||
|
E: popizdeh@gmail.com
|
||||||
|
T: x86
|
||||||
|
O: OpenSUSE, Fedora
|
||||||
|
|
||||||
|
N: Brian Cain
|
||||||
|
E: brian.cain@gmail.com
|
||||||
|
T: x86
|
||||||
|
O: SuSE Enterprise, CentOS
|
||||||
|
|
||||||
|
N: Bernhard Rosenkränzer
|
||||||
|
E: bero@linaro.org
|
||||||
|
T: x86
|
||||||
|
O: OpenMandriva
|
||||||
|
|
||||||
|
N: Dimitry Andric
|
||||||
|
E: dimitry@andric.com
|
||||||
|
T: x86
|
||||||
|
O: FreeBSD
|
||||||
|
|
||||||
|
N: Hans Wennborg
|
||||||
|
E: hans@chromium.org
|
||||||
|
T: x86
|
||||||
|
O: Windows
|
||||||
|
|
||||||
|
N: Diana Picus
|
||||||
|
E: diana.picus@linaro.org
|
||||||
|
T: ARM, AArch64
|
||||||
|
O: Linux
|
||||||
|
|
||||||
|
N: Simon Dardis
|
||||||
|
E: simon.dardis@mips.com
|
||||||
|
T: MIPS
|
||||||
|
O: Linux
|
21
external/llvm/bindings/LLVMBuild.txt
vendored
Normal file
21
external/llvm/bindings/LLVMBuild.txt
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
;===- ./bindings/LLVMBuild.txt ---------------------------------*- Conf -*--===;
|
||||||
|
;
|
||||||
|
; The LLVM Compiler Infrastructure
|
||||||
|
;
|
||||||
|
; This file is distributed under the University of Illinois Open Source
|
||||||
|
; License. See LICENSE.TXT for details.
|
||||||
|
;
|
||||||
|
;===------------------------------------------------------------------------===;
|
||||||
|
;
|
||||||
|
; This is an LLVMBuild description file for the components in this subdirectory.
|
||||||
|
;
|
||||||
|
; For more information on the LLVMBuild system, please see:
|
||||||
|
;
|
||||||
|
; http://llvm.org/docs/LLVMBuild.html
|
||||||
|
;
|
||||||
|
;===------------------------------------------------------------------------===;
|
||||||
|
|
||||||
|
[component_0]
|
||||||
|
type = Group
|
||||||
|
name = Bindings
|
||||||
|
parent = $ROOT
|
3
external/llvm/bindings/README.txt
vendored
Normal file
3
external/llvm/bindings/README.txt
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
This directory contains bindings for the LLVM compiler infrastructure to allow
|
||||||
|
programs written in languages other than C or C++ to take advantage of the LLVM
|
||||||
|
infrastructure--for instance, a self-hosted compiler front-end.
|
61
external/llvm/bindings/go/README.txt
vendored
Normal file
61
external/llvm/bindings/go/README.txt
vendored
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
This directory contains LLVM bindings for the Go programming language
|
||||||
|
(http://golang.org).
|
||||||
|
|
||||||
|
Prerequisites
|
||||||
|
-------------
|
||||||
|
|
||||||
|
* Go 1.2+.
|
||||||
|
* CMake (to build LLVM).
|
||||||
|
|
||||||
|
Using the bindings
|
||||||
|
------------------
|
||||||
|
|
||||||
|
The package path "llvm.org/llvm/bindings/go/llvm" can be used to
|
||||||
|
import the latest development version of LLVM from SVN. Paths such as
|
||||||
|
"llvm.org/llvm.v36/bindings/go/llvm" refer to released versions of LLVM.
|
||||||
|
|
||||||
|
It is recommended to use the "-d" flag with "go get" to download the
|
||||||
|
package or a dependency, as an additional step is required to build LLVM
|
||||||
|
(see "Building LLVM" below).
|
||||||
|
|
||||||
|
Building LLVM
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The script "build.sh" in this directory can be used to build LLVM and prepare
|
||||||
|
it to be used by the bindings. If you receive an error message from "go build"
|
||||||
|
like this:
|
||||||
|
|
||||||
|
./analysis.go:4:84: fatal error: llvm-c/Analysis.h: No such file or directory
|
||||||
|
#include <llvm-c/Analysis.h> // If you are getting an error here read bindings/go/README.txt
|
||||||
|
|
||||||
|
or like this:
|
||||||
|
|
||||||
|
./llvm_dep.go:5: undefined: run_build_sh
|
||||||
|
|
||||||
|
it means that LLVM needs to be built or updated by running the script.
|
||||||
|
|
||||||
|
$ $GOPATH/src/llvm.org/llvm/bindings/go/build.sh
|
||||||
|
|
||||||
|
Any command line arguments supplied to the script are passed to LLVM's CMake
|
||||||
|
build system. A good set of arguments to use during development are:
|
||||||
|
|
||||||
|
$ $GOPATH/src/llvm.org/llvm/bindings/go/build.sh -DCMAKE_BUILD_TYPE=Debug -DLLVM_TARGETS_TO_BUILD=host -DBUILD_SHARED_LIBS=ON
|
||||||
|
|
||||||
|
Note that CMake keeps a cache of build settings so once you have built
|
||||||
|
LLVM there is no need to pass these arguments again after updating.
|
||||||
|
|
||||||
|
Alternatively, you can build LLVM yourself, but you must then set the
|
||||||
|
CGO_CPPFLAGS, CGO_CXXFLAGS and CGO_LDFLAGS environment variables:
|
||||||
|
|
||||||
|
$ export CGO_CPPFLAGS="`/path/to/llvm-build/bin/llvm-config --cppflags`"
|
||||||
|
$ export CGO_CXXFLAGS=-std=c++11
|
||||||
|
$ export CGO_LDFLAGS="`/path/to/llvm-build/bin/llvm-config --ldflags --libs --system-libs all`"
|
||||||
|
$ go build -tags byollvm
|
||||||
|
|
||||||
|
If you see a compilation error while compiling your code with Go 1.9.4 or later as follows,
|
||||||
|
|
||||||
|
go build llvm.org/llvm/bindings/go/llvm: invalid flag in #cgo LDFLAGS: -Wl,-headerpad_max_install_names
|
||||||
|
|
||||||
|
you need to setup $CGO_LDFLAGS_ALLOW to allow a compiler to specify some linker options:
|
||||||
|
|
||||||
|
$ export CGO_LDFLAGS_ALLOW='-Wl,(-search_paths_first|-headerpad_max_install_names)'
|
28
external/llvm/bindings/go/build.sh
vendored
Executable file
28
external/llvm/bindings/go/build.sh
vendored
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/sh -xe
|
||||||
|
|
||||||
|
gollvmdir=$(dirname "$0")/llvm
|
||||||
|
|
||||||
|
workdir=$gollvmdir/workdir
|
||||||
|
llvmdir=$gollvmdir/../../..
|
||||||
|
llvm_builddir=$workdir/llvm_build
|
||||||
|
|
||||||
|
mkdir -p $llvm_builddir
|
||||||
|
|
||||||
|
cmake_flags="../../../../.. $@"
|
||||||
|
llvm_config="$llvm_builddir/bin/llvm-config"
|
||||||
|
llvm_go="$llvm_builddir/bin/llvm-go"
|
||||||
|
|
||||||
|
if test -n "`which ninja`" ; then
|
||||||
|
# If Ninja is available, we can speed up the build by building only the
|
||||||
|
# required subset of LLVM.
|
||||||
|
(cd $llvm_builddir && cmake -G Ninja $cmake_flags)
|
||||||
|
ninja -C $llvm_builddir llvm-config llvm-go
|
||||||
|
llvm_components="$($llvm_go print-components)"
|
||||||
|
llvm_buildtargets="$($llvm_config --libs $llvm_components | sed -e 's/-l//g')"
|
||||||
|
ninja -C $llvm_builddir $llvm_buildtargets FileCheck
|
||||||
|
else
|
||||||
|
(cd $llvm_builddir && cmake $cmake_flags)
|
||||||
|
make -C $llvm_builddir -j4
|
||||||
|
fi
|
||||||
|
|
||||||
|
$llvm_go print-config > $gollvmdir/llvm_config.go
|
16
external/llvm/bindings/go/conftest.go
vendored
Normal file
16
external/llvm/bindings/go/conftest.go
vendored
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go/build"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Tests that the Go compiler is at least version 1.2.
|
||||||
|
func main() {
|
||||||
|
for _, tag := range build.Default.ReleaseTags {
|
||||||
|
if tag == "go1.2" {
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
234
external/llvm/bindings/go/llvm/DIBuilderBindings.cpp
vendored
Normal file
234
external/llvm/bindings/go/llvm/DIBuilderBindings.cpp
vendored
Normal file
@ -0,0 +1,234 @@
|
|||||||
|
//===- DIBuilderBindings.cpp - Bindings for DIBuilder ---------------------===//
|
||||||
|
//
|
||||||
|
// The LLVM Compiler Infrastructure
|
||||||
|
//
|
||||||
|
// This file is distributed under the University of Illinois Open Source
|
||||||
|
// License. See LICENSE.TXT for details.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// This file defines C bindings for the DIBuilder class.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
#include "DIBuilderBindings.h"
|
||||||
|
#include "IRBindings.h"
|
||||||
|
#include "llvm/IR/DIBuilder.h"
|
||||||
|
#include "llvm/IR/IRBuilder.h"
|
||||||
|
#include "llvm/IR/Module.h"
|
||||||
|
|
||||||
|
using namespace llvm;
|
||||||
|
|
||||||
|
LLVMDIBuilderRef LLVMNewDIBuilder(LLVMModuleRef mref) {
|
||||||
|
Module *m = unwrap(mref);
|
||||||
|
return wrap(new DIBuilder(*m));
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLVMDIBuilderDestroy(LLVMDIBuilderRef dref) {
|
||||||
|
DIBuilder *d = unwrap(dref);
|
||||||
|
delete d;
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMMetadataRef LLVMDIBuilderCreateLexicalBlock(LLVMDIBuilderRef Dref,
|
||||||
|
LLVMMetadataRef Scope,
|
||||||
|
LLVMMetadataRef File,
|
||||||
|
unsigned Line,
|
||||||
|
unsigned Column) {
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
auto *LB = D->createLexicalBlock(unwrap<DILocalScope>(Scope),
|
||||||
|
unwrap<DIFile>(File), Line, Column);
|
||||||
|
return wrap(LB);
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMMetadataRef LLVMDIBuilderCreateLexicalBlockFile(LLVMDIBuilderRef Dref,
|
||||||
|
LLVMMetadataRef Scope,
|
||||||
|
LLVMMetadataRef File,
|
||||||
|
unsigned Discriminator) {
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
return wrap(D->createLexicalBlockFile(unwrap<DILocalScope>(Scope),
|
||||||
|
unwrap<DIFile>(File), Discriminator));
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMMetadataRef LLVMDIBuilderCreateFunction(
|
||||||
|
LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, const char *Name,
|
||||||
|
const char *LinkageName, LLVMMetadataRef File, unsigned Line,
|
||||||
|
LLVMMetadataRef CompositeType, int IsLocalToUnit, int IsDefinition,
|
||||||
|
unsigned ScopeLine, unsigned Flags, int IsOptimized) {
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
return wrap(D->createFunction(
|
||||||
|
unwrap<DIScope>(Scope), Name, LinkageName,
|
||||||
|
File ? unwrap<DIFile>(File) : nullptr, Line,
|
||||||
|
unwrap<DISubroutineType>(CompositeType), IsLocalToUnit, IsDefinition,
|
||||||
|
ScopeLine, static_cast<DINode::DIFlags>(Flags), IsOptimized));
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMMetadataRef LLVMDIBuilderCreateAutoVariable(
|
||||||
|
LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, const char *Name,
|
||||||
|
LLVMMetadataRef File, unsigned Line, LLVMMetadataRef Ty, int AlwaysPreserve,
|
||||||
|
unsigned Flags, uint32_t AlignInBits) {
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
return wrap(
|
||||||
|
D->createAutoVariable(unwrap<DIScope>(Scope), Name, unwrap<DIFile>(File),
|
||||||
|
Line, unwrap<DIType>(Ty), AlwaysPreserve,
|
||||||
|
static_cast<DINode::DIFlags>(Flags), AlignInBits));
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMMetadataRef LLVMDIBuilderCreateParameterVariable(
|
||||||
|
LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, const char *Name,
|
||||||
|
unsigned ArgNo, LLVMMetadataRef File, unsigned Line, LLVMMetadataRef Ty,
|
||||||
|
int AlwaysPreserve, unsigned Flags) {
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
return wrap(D->createParameterVariable(
|
||||||
|
unwrap<DIScope>(Scope), Name, ArgNo, unwrap<DIFile>(File), Line,
|
||||||
|
unwrap<DIType>(Ty), AlwaysPreserve, static_cast<DINode::DIFlags>(Flags)));
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMMetadataRef LLVMDIBuilderCreateBasicType(LLVMDIBuilderRef Dref,
|
||||||
|
const char *Name,
|
||||||
|
uint64_t SizeInBits,
|
||||||
|
unsigned Encoding) {
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
return wrap(D->createBasicType(Name, SizeInBits, Encoding));
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMMetadataRef LLVMDIBuilderCreatePointerType(LLVMDIBuilderRef Dref,
|
||||||
|
LLVMMetadataRef PointeeType,
|
||||||
|
uint64_t SizeInBits,
|
||||||
|
uint32_t AlignInBits,
|
||||||
|
const char *Name) {
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
return wrap(D->createPointerType(unwrap<DIType>(PointeeType), SizeInBits,
|
||||||
|
AlignInBits, /* DWARFAddressSpace */ None,
|
||||||
|
Name));
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMMetadataRef
|
||||||
|
LLVMDIBuilderCreateSubroutineType(LLVMDIBuilderRef Dref, LLVMMetadataRef File,
|
||||||
|
LLVMMetadataRef ParameterTypes) {
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
return wrap(
|
||||||
|
D->createSubroutineType(DITypeRefArray(unwrap<MDTuple>(ParameterTypes))));
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMMetadataRef LLVMDIBuilderCreateStructType(
|
||||||
|
LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, const char *Name,
|
||||||
|
LLVMMetadataRef File, unsigned Line, uint64_t SizeInBits,
|
||||||
|
uint32_t AlignInBits, unsigned Flags, LLVMMetadataRef DerivedFrom,
|
||||||
|
LLVMMetadataRef ElementTypes) {
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
return wrap(D->createStructType(
|
||||||
|
unwrap<DIScope>(Scope), Name, File ? unwrap<DIFile>(File) : nullptr, Line,
|
||||||
|
SizeInBits, AlignInBits, static_cast<DINode::DIFlags>(Flags),
|
||||||
|
DerivedFrom ? unwrap<DIType>(DerivedFrom) : nullptr,
|
||||||
|
ElementTypes ? DINodeArray(unwrap<MDTuple>(ElementTypes)) : nullptr));
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMMetadataRef LLVMDIBuilderCreateReplaceableCompositeType(
|
||||||
|
LLVMDIBuilderRef Dref, unsigned Tag, const char *Name,
|
||||||
|
LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line,
|
||||||
|
unsigned RuntimeLang, uint64_t SizeInBits, uint32_t AlignInBits,
|
||||||
|
unsigned Flags) {
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
return wrap(D->createReplaceableCompositeType(
|
||||||
|
Tag, Name, unwrap<DIScope>(Scope), File ? unwrap<DIFile>(File) : nullptr,
|
||||||
|
Line, RuntimeLang, SizeInBits, AlignInBits,
|
||||||
|
static_cast<DINode::DIFlags>(Flags)));
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMMetadataRef
|
||||||
|
LLVMDIBuilderCreateMemberType(LLVMDIBuilderRef Dref, LLVMMetadataRef Scope,
|
||||||
|
const char *Name, LLVMMetadataRef File,
|
||||||
|
unsigned Line, uint64_t SizeInBits,
|
||||||
|
uint32_t AlignInBits, uint64_t OffsetInBits,
|
||||||
|
unsigned Flags, LLVMMetadataRef Ty) {
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
return wrap(D->createMemberType(
|
||||||
|
unwrap<DIScope>(Scope), Name, File ? unwrap<DIFile>(File) : nullptr, Line,
|
||||||
|
SizeInBits, AlignInBits, OffsetInBits,
|
||||||
|
static_cast<DINode::DIFlags>(Flags), unwrap<DIType>(Ty)));
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMMetadataRef LLVMDIBuilderCreateArrayType(LLVMDIBuilderRef Dref,
|
||||||
|
uint64_t SizeInBits,
|
||||||
|
uint32_t AlignInBits,
|
||||||
|
LLVMMetadataRef ElementType,
|
||||||
|
LLVMMetadataRef Subscripts) {
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
return wrap(D->createArrayType(SizeInBits, AlignInBits,
|
||||||
|
unwrap<DIType>(ElementType),
|
||||||
|
DINodeArray(unwrap<MDTuple>(Subscripts))));
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMMetadataRef LLVMDIBuilderCreateTypedef(LLVMDIBuilderRef Dref,
|
||||||
|
LLVMMetadataRef Ty, const char *Name,
|
||||||
|
LLVMMetadataRef File, unsigned Line,
|
||||||
|
LLVMMetadataRef Context) {
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
return wrap(D->createTypedef(unwrap<DIType>(Ty), Name,
|
||||||
|
File ? unwrap<DIFile>(File) : nullptr, Line,
|
||||||
|
Context ? unwrap<DIScope>(Context) : nullptr));
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMMetadataRef LLVMDIBuilderGetOrCreateSubrange(LLVMDIBuilderRef Dref,
|
||||||
|
int64_t Lo, int64_t Count) {
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
return wrap(D->getOrCreateSubrange(Lo, Count));
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMMetadataRef LLVMDIBuilderGetOrCreateArray(LLVMDIBuilderRef Dref,
|
||||||
|
LLVMMetadataRef *Data,
|
||||||
|
size_t Length) {
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
Metadata **DataValue = unwrap(Data);
|
||||||
|
ArrayRef<Metadata *> Elements(DataValue, Length);
|
||||||
|
DINodeArray A = D->getOrCreateArray(Elements);
|
||||||
|
return wrap(A.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMMetadataRef LLVMDIBuilderGetOrCreateTypeArray(LLVMDIBuilderRef Dref,
|
||||||
|
LLVMMetadataRef *Data,
|
||||||
|
size_t Length) {
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
Metadata **DataValue = unwrap(Data);
|
||||||
|
ArrayRef<Metadata *> Elements(DataValue, Length);
|
||||||
|
DITypeRefArray A = D->getOrCreateTypeArray(Elements);
|
||||||
|
return wrap(A.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMMetadataRef LLVMDIBuilderCreateExpression(LLVMDIBuilderRef Dref,
|
||||||
|
int64_t *Addr, size_t Length) {
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
return wrap(D->createExpression(ArrayRef<int64_t>(Addr, Length)));
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd(LLVMDIBuilderRef Dref,
|
||||||
|
LLVMValueRef Storage,
|
||||||
|
LLVMMetadataRef VarInfo,
|
||||||
|
LLVMMetadataRef Expr,
|
||||||
|
LLVMBasicBlockRef Block) {
|
||||||
|
// Fail immediately here until the llgo folks update their bindings. The
|
||||||
|
// called function is going to assert out anyway.
|
||||||
|
llvm_unreachable("DIBuilder API change requires a DebugLoc");
|
||||||
|
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
Instruction *Instr = D->insertDeclare(
|
||||||
|
unwrap(Storage), unwrap<DILocalVariable>(VarInfo),
|
||||||
|
unwrap<DIExpression>(Expr), /* DebugLoc */ nullptr, unwrap(Block));
|
||||||
|
return wrap(Instr);
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMValueRef LLVMDIBuilderInsertValueAtEnd(LLVMDIBuilderRef Dref,
|
||||||
|
LLVMValueRef Val,
|
||||||
|
LLVMMetadataRef VarInfo,
|
||||||
|
LLVMMetadataRef Expr,
|
||||||
|
LLVMBasicBlockRef Block) {
|
||||||
|
// Fail immediately here until the llgo folks update their bindings. The
|
||||||
|
// called function is going to assert out anyway.
|
||||||
|
llvm_unreachable("DIBuilder API change requires a DebugLoc");
|
||||||
|
|
||||||
|
DIBuilder *D = unwrap(Dref);
|
||||||
|
Instruction *Instr = D->insertDbgValueIntrinsic(
|
||||||
|
unwrap(Val), unwrap<DILocalVariable>(VarInfo), unwrap<DIExpression>(Expr),
|
||||||
|
/* DebugLoc */ nullptr, unwrap(Block));
|
||||||
|
return wrap(Instr);
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user