[llvm] 102814b - Continue removing llgo.

Eric Christopher via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 13 17:25:45 PST 2020


Done thusly:

commit e635e48020adbe1139f2de8d2db0d4875d6d75a8
Author: Eric Christopher <echristo at gmail.com>
Date:   Thu Feb 13 12:53:32 2020 -0800

    Reinstate llvm-go to test the go bindings.

    This partially reverts commit 102814b4d36ad004a2e37cd2a1e84bd2c3593d29.

-eric

On Thu, Feb 13, 2020 at 2:52 PM Eric Christopher <echristo at gmail.com> wrote:

> I'll reinstate llvm-go in a few minutes.
>
> -eric
>
> On Tue, Feb 11, 2020 at 12:42 PM Peter Collingbourne <pcc at google.com>
> wrote:
>
>> Not personally.
>> https://www.google.com/search?q=%22llvm+org+llvm+bindings%22 and
>> https://github.com/search?q=%22import%20llvm+org+llvm+bindings%22&type=Code seem
>> to find a few users but they're mostly blog posts and tutorials and such. I
>> thought that https://github.com/tinygo-org/tinygo might be using them
>> but they seem to be using a fork https://github.com/tinygo-org/go-llvm.
>> Adding the maintainer of that project.
>>
>> Peter
>>
>>
>>
>> On Tue, Feb 11, 2020 at 11:40 AM Eric Christopher <echristo at gmail.com>
>> wrote:
>>
>>> That's a good question. Do you know of anyone using the go bindings
>>> Peter?
>>>
>>> On Mon, Feb 10, 2020, 5:15 PM Eli Friedman <efriedma at quicinc.com> wrote:
>>>
>>>> Are you sure it's correct to remove llvm-go?  Grep seems to show it's
>>>> used to build the LLVM go bindings.
>>>>
>>>> -Eli
>>>>
>>>> > -----Original Message-----
>>>> > From: llvm-commits <llvm-commits-bounces at lists.llvm.org> On Behalf
>>>> Of Eric
>>>> > Christopher via llvm-commits
>>>> > Sent: Monday, February 10, 2020 10:34 AM
>>>> > To: llvm-commits at lists.llvm.org
>>>> > Subject: [EXT] [llvm] 102814b - Continue removing llgo.
>>>> >
>>>> >
>>>> > Author: Eric Christopher
>>>> > Date: 2020-02-10T10:33:58-08:00
>>>> > New Revision: 102814b4d36ad004a2e37cd2a1e84bd2c3593d29
>>>> >
>>>> > URL: https://github.com/llvm/llvm-
>>>> > project/commit/102814b4d36ad004a2e37cd2a1e84bd2c3593d29
>>>> > DIFF: https://github.com/llvm/llvm-
>>>> > project/commit/102814b4d36ad004a2e37cd2a1e84bd2c3593d29.diff
>>>> >
>>>> > LOG: Continue removing llgo.
>>>> >
>>>> > Added:
>>>> >
>>>> >
>>>> > Modified:
>>>> >     llvm/.gitignore
>>>> >     llvm/CMakeLists.txt
>>>> >     llvm/CODE_OWNERS.TXT
>>>> >     llvm/docs/CMake.rst
>>>> >     llvm/tools/CMakeLists.txt
>>>> >     llvm/utils/docker/scripts/llvm_checksum/project_tree.py
>>>> >     llvm/utils/git-svn/git-llvm
>>>> >
>>>> > Removed:
>>>> >     llvm/tools/llvm-go/CMakeLists.txt
>>>> >     llvm/tools/llvm-go/llvm-go.go
>>>> >
>>>> >
>>>> > #################################################################
>>>> > ###############
>>>> > diff  --git a/llvm/.gitignore b/llvm/.gitignore
>>>> > index 1f4bb5e4f1c1..f2b343ade4f3 100644
>>>> > --- a/llvm/.gitignore
>>>> > +++ b/llvm/.gitignore
>>>> > @@ -50,8 +50,6 @@ tools/clang
>>>> >  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.
>>>> >
>>>> > diff  --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
>>>> > index 3dfe8621f525..68d2c1673ed3 100644
>>>> > --- a/llvm/CMakeLists.txt
>>>> > +++ b/llvm/CMakeLists.txt
>>>> > @@ -63,7 +63,7 @@ endif()
>>>> >  # LLVM_EXTERNAL_${project}_SOURCE_DIR using LLVM_ALL_PROJECTS
>>>> >  # This allows an easy way of setting up a build directory for llvm
>>>> and another
>>>> >  # one for llvm+clang+... using the same sources.
>>>> > -set(LLVM_ALL_PROJECTS "clang;clang-tools-extra;compiler-rt;debuginfo-
>>>> >
>>>> tests;libc;libclc;libcxx;libcxxabi;libunwind;lld;lldb;llgo;mlir;openmp;parallel-
>>>> > libs;polly;pstl")
>>>> > +set(LLVM_ALL_PROJECTS "clang;clang-tools-extra;compiler-rt;debuginfo-
>>>> >
>>>> tests;libc;libclc;libcxx;libcxxabi;libunwind;lld;lldb;mlir;openmp;parallel-
>>>> > libs;polly;pstl")
>>>> >  set(LLVM_ENABLE_PROJECTS "" CACHE STRING
>>>> >  "Semicolon-separated list of projects to build
>>>> (${LLVM_ALL_PROJECTS}),
>>>> > or \"all\".")
>>>> >  if( LLVM_ENABLE_PROJECTS STREQUAL "all" )
>>>> >
>>>> > diff  --git a/llvm/CODE_OWNERS.TXT b/llvm/CODE_OWNERS.TXT
>>>> > index 457dabe39f90..192a774e1cee 100644
>>>> > --- a/llvm/CODE_OWNERS.TXT
>>>> > +++ b/llvm/CODE_OWNERS.TXT
>>>> > @@ -62,7 +62,7 @@ D: libc++
>>>> >
>>>> >  N: Peter Collingbourne
>>>> >  E: peter at pcc.me.uk
>>>> > -D: llgo, libLTO (lib/LTO/* tools/lto/*), LLVM Bitcode (lib/Bitcode/*
>>>> > include/llvm/Bitcode/*)
>>>> > +D: libLTO (lib/LTO/* tools/lto/*), LLVM Bitcode (lib/Bitcode/*
>>>> > include/llvm/Bitcode/*)
>>>> >
>>>> >  N: Quentin Colombet
>>>> >  E: quentin.colombet at gmail.com
>>>> >
>>>> > diff  --git a/llvm/docs/CMake.rst b/llvm/docs/CMake.rst
>>>> > index a86ebb3a37bd..70c81adfee3a 100644
>>>> > --- a/llvm/docs/CMake.rst
>>>> > +++ b/llvm/docs/CMake.rst
>>>> > @@ -383,7 +383,7 @@ LLVM-specific variables
>>>> >    This feature allows to have one build for only LLVM and another
>>>> for clang+llvm
>>>> >    using the same source checkout.
>>>> >    The full list is:
>>>> > -  ``clang;clang-tools-extra;compiler-rt;debuginfo-
>>>> >
>>>> tests;libc;libclc;libcxx;libcxxabi;libunwind;lld;lldb;llgo;openmp;parallel-
>>>> > libs;polly;pstl``
>>>> > +  ``clang;clang-tools-extra;compiler-rt;debuginfo-
>>>> >
>>>> tests;libc;libclc;libcxx;libcxxabi;libunwind;lld;lldb;openmp;parallel-libs;polly;pstl``
>>>> >
>>>> >  **LLVM_EXTERNAL_PROJECTS**:STRING
>>>> >    Semicolon-separated list of additional external projects to build
>>>> as part of
>>>> >
>>>> > diff  --git a/llvm/tools/CMakeLists.txt b/llvm/tools/CMakeLists.txt
>>>> > index 2ac35d733cf9..f419867cb081 100644
>>>> > --- a/llvm/tools/CMakeLists.txt
>>>> > +++ b/llvm/tools/CMakeLists.txt
>>>> > @@ -34,7 +34,6 @@ add_llvm_tool_subdirectory(llvm-profdata)
>>>> >  # Projects supported via LLVM_EXTERNAL_*_SOURCE_DIR need to be
>>>> explicitly
>>>> >  # specified.
>>>> >  add_llvm_external_project(clang)
>>>> > -add_llvm_external_project(llgo)
>>>> >  add_llvm_external_project(lld)
>>>> >  add_llvm_external_project(lldb)
>>>> >  add_llvm_external_project(mlir)
>>>> >
>>>> > diff  --git a/llvm/tools/llvm-go/CMakeLists.txt b/llvm/tools/llvm-
>>>> > go/CMakeLists <https://goto.google.com/CMakeLists>.txt
>>>> > deleted file mode 100644
>>>> > index 20393f728f8f..000000000000
>>>> > --- a/llvm/tools/llvm-go/CMakeLists.txt
>>>> > +++ /dev/null
>>>> > @@ -1,9 +0,0 @@
>>>> > -if(LLVM_BINDINGS MATCHES "go")
>>>> > -  set(binpath ${CMAKE_BINARY_DIR}/bin/llvm-
>>>> > go${CMAKE_EXECUTABLE_SUFFIX})
>>>> > -  add_custom_command(OUTPUT ${binpath}
>>>> > -    COMMAND ${GO_EXECUTABLE} build -o ${binpath} llvm-go.go
>>>> > -    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/llvm-go.go
>>>> > -    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
>>>> > -    COMMENT "Building Go executable llvm-go")
>>>> > -  add_custom_target(llvm-go ALL DEPENDS ${binpath})
>>>> > -endif()
>>>> >
>>>> > diff  --git a/llvm/tools/llvm-go/llvm-go.go
>>>> b/llvm/tools/llvm-go/llvm-go.go
>>>> > deleted file mode 100644
>>>> > index a0561dd5fd8d..000000000000
>>>> > --- a/llvm/tools/llvm-go/llvm-go.go
>>>> > +++ /dev/null
>>>> > @@ -1,311 +0,0 @@
>>>> > -//===-- llvm-go.go - go tool wrapper for LLVM
>>>> -----------------------------===//
>>>> > -//
>>>> > -// Part of the LLVM Project, under the Apache License v2.0 with LLVM
>>>> > Exceptions.
>>>> > -// See https://llvm.org/LICENSE.txt for license information.
>>>> > -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
>>>> > -//
>>>> >
>>>> -//===----------------------------------------------------------------------===//
>>>> > -//
>>>> > -// This tool lets us build LLVM components within the tree by
>>>> setting up a
>>>> > -// $GOPATH that resembles a tree fetched in the normal way with "go
>>>> get".
>>>> > -//
>>>> >
>>>> -//===----------------------------------------------------------------------===//
>>>> > -
>>>> > -package main
>>>> > -
>>>> > -import (
>>>> > -"fmt"
>>>> > -"io/ioutil"
>>>> > -"os"
>>>> > -"os/exec"
>>>> > -"path/filepath"
>>>> > -"runtime"
>>>> > -"strings"
>>>> > -)
>>>> > -
>>>> > -const (
>>>> > -linkmodeComponentLibs = "component-libs"
>>>> > -linkmodeDylib         = "dylib"
>>>> > -)
>>>> > -
>>>> > -type pkg struct {
>>>> > -llvmpath, pkgpath string
>>>> > -}
>>>> > -
>>>> > -var packages = []pkg{
>>>> > -{"bindings/go/llvm", "llvm.org/llvm/bindings/go/llvm"},
>>>> > -}
>>>> > -
>>>> > -type compilerFlags struct {
>>>> > -cpp, cxx, ld string
>>>> > -}
>>>> > -
>>>> > -var components = []string{
>>>> > -"all-targets",
>>>> > -"analysis",
>>>> > -"asmparser",
>>>> > -"asmprinter",
>>>> > -"bitreader",
>>>> > -"bitwriter",
>>>> > -"codegen",
>>>> > -"core",
>>>> > -"coroutines",
>>>> > -"debuginfodwarf",
>>>> > -"executionengine",
>>>> > -"instrumentation",
>>>> > -"interpreter",
>>>> > -"ipo",
>>>> > -"irreader",
>>>> > -"linker",
>>>> > -"mc",
>>>> > -"mcjit",
>>>> > -"objcarcopts",
>>>> > -"option",
>>>> > -"profiledata",
>>>> > -"scalaropts",
>>>> > -"support",
>>>> > -"target",
>>>> > -}
>>>> > -
>>>> > -func llvmConfig(args ...string) string {
>>>> > -configpath := os.Getenv("LLVM_CONFIG")
>>>> > -if configpath == "" {
>>>> > -bin, _ := filepath.Split(os.Args[0])
>>>> > -configpath = filepath.Join(bin, "llvm-config")
>>>> > -}
>>>> > -
>>>> > -cmd := exec.Command(configpath, args...)
>>>> > -cmd.Stderr = os.Stderr
>>>> > -out, err := cmd.Output()
>>>> > -if err != nil {
>>>> > -panic(err.Error())
>>>> > -}
>>>> > -
>>>> > -outstr := string(out)
>>>> > -outstr = strings.TrimSuffix(outstr, "\n")
>>>> > -outstr = strings.Replace(outstr, "\n", " ", -1)
>>>> > -return outstr
>>>> > -}
>>>> > -
>>>> > -func llvmFlags() compilerFlags {
>>>> > -args := append([]string{"--ldflags", "--libs", "--system-libs"},
>>>> > components...)
>>>> > -ldflags := llvmConfig(args...)
>>>> > -stdLibOption := ""
>>>> > -if strings.Contains(llvmConfig("--cxxflags"), "-stdlib=libc++") {
>>>> > -// If libc++ is used to build LLVM libraries, -stdlib=libc++ is
>>>> > -// needed to resolve dependent symbols
>>>> > -stdLibOption = "-stdlib=libc++"
>>>> > -}
>>>> > -if runtime.GOOS != "darwin" {
>>>> > -// OS X doesn't like -rpath with cgo. See:
>>>> > -// https://github.com/golang/go/issues/7293
>>>> > -ldflags = "-Wl,-rpath," + llvmConfig("--libdir") + " " + ldflags
>>>> > -}
>>>> > -return compilerFlags{
>>>> > -cpp: llvmConfig("--cppflags"),
>>>> > -cxx: "-std=c++14" + " " + stdLibOption,
>>>> > -ld:  ldflags,
>>>> > -}
>>>> > -}
>>>> > -
>>>> > -func addTag(args []string, tag string) []string {
>>>> > -args = append([]string{}, args...)
>>>> > -addedTag := false
>>>> > -for i, a := range args {
>>>> > -if strings.HasPrefix(a, "-tags=") {
>>>> > -args[i] = a + " " + tag
>>>> > -addedTag = true
>>>> > -} else if a == "-tags" && i+1 < len(args) {
>>>> > -args[i+1] = args[i+1] + " " + tag
>>>> > -addedTag = true
>>>> > -}
>>>> > -}
>>>> > -if !addedTag {
>>>> > -args = append([]string{args[0], "-tags", tag}, args[1:]...)
>>>> > -}
>>>> > -return args
>>>> > -}
>>>> > -
>>>> > -func printComponents() {
>>>> > -fmt.Println(strings.Join(components, " "))
>>>> > -}
>>>> > -
>>>> > -func printConfig() {
>>>> > -flags := llvmFlags()
>>>> > -
>>>> > -fmt.Printf(`// +build !byollvm
>>>> > -
>>>> > -// This file is generated by llvm-go, do not edit.
>>>> > -
>>>> > -package llvm
>>>> > -
>>>> > -/*
>>>> > -#cgo CPPFLAGS: %s
>>>> > -#cgo CXXFLAGS: %s
>>>> > -#cgo LDFLAGS: %s
>>>> > -*/
>>>> > -import "C"
>>>> > -
>>>> > -type (run_build_sh int)
>>>> > -`, flags.cpp, flags.cxx, flags.ld)
>>>> > -}
>>>> > -
>>>> > -func runGoWithLLVMEnv(args []string, cc, cxx, gocmd, llgo, cppflags,
>>>> cxxflags,
>>>> > ldflags string, packages []pkg) {
>>>> > -args = addTag(args, "byollvm")
>>>> > -
>>>> > -srcdir := llvmConfig("--src-root")
>>>> > -
>>>> > -tmpgopath, err := ioutil.TempDir("", "gopath")
>>>> > -if err != nil {
>>>> > -panic(err.Error())
>>>> > -}
>>>> > -
>>>> > -for _, p := range packages {
>>>> > -path := filepath.Join(tmpgopath, "src", p.pkgpath)
>>>> > -err := os.MkdirAll(filepath.Dir(path), os.ModePerm)
>>>> > -if err != nil {
>>>> > -panic(err.Error())
>>>> > -}
>>>> > -
>>>> > -abspath := p.llvmpath
>>>> > -if !filepath.IsAbs(abspath) {
>>>> > -abspath = filepath.Join(srcdir, abspath)
>>>> > -}
>>>> > -
>>>> > -err = os.Symlink(abspath, path)
>>>> > -if err != nil {
>>>> > -panic(err.Error())
>>>> > -}
>>>> > -}
>>>> > -
>>>> > -newpath := os.Getenv("PATH")
>>>> > -
>>>> > -newgopathlist := []string{tmpgopath}
>>>> > -newgopathlist = append(newgopathlist,
>>>> > filepath.SplitList(os.Getenv("GOPATH"))...)
>>>> > -newgopath := strings.Join(newgopathlist,
>>>> string(filepath.ListSeparator))
>>>> > -
>>>> > -flags := llvmFlags()
>>>> > -
>>>> > -newenv := []string{
>>>> > -"CC=" + cc,
>>>> > -"CXX=" + cxx,
>>>> > -"CGO_CPPFLAGS=" + flags.cpp + " " + cppflags,
>>>> > -"CGO_CXXFLAGS=" + flags.cxx + " " + cxxflags,
>>>> > -"CGO_LDFLAGS=" + flags.ld + " " + ldflags,
>>>> > -"GOPATH=" + newgopath,
>>>> > -"PATH=" + newpath,
>>>> > -}
>>>> > -if llgo != "" {
>>>> > -newenv = append(newenv, "GCCGO="+llgo)
>>>> > -}
>>>> > -
>>>> > -for _, v := range os.Environ() {
>>>> > -if !strings.HasPrefix(v, "CC=") &&
>>>> > -!strings.HasPrefix(v, "CXX=") &&
>>>> > -!strings.HasPrefix(v, "CGO_CPPFLAGS=") &&
>>>> > -!strings.HasPrefix(v, "CGO_CXXFLAGS=") &&
>>>> > -!strings.HasPrefix(v, "CGO_LDFLAGS=") &&
>>>> > -!strings.HasPrefix(v, "GCCGO=") &&
>>>> > -!strings.HasPrefix(v, "GOPATH=") &&
>>>> > -!strings.HasPrefix(v, "PATH=") {
>>>> > -newenv = append(newenv, v)
>>>> > -}
>>>> > -}
>>>> > -
>>>> > -gocmdpath, err := exec.LookPath(gocmd)
>>>> > -if err != nil {
>>>> > -panic(err.Error())
>>>> > -}
>>>> > -
>>>> > -proc, err := os.StartProcess(gocmdpath, append([]string{gocmd},
>>>> > args...),
>>>> > -&os.ProcAttr{
>>>> > -Env:   newenv,
>>>> > -Files: []*os.File{os.Stdin, os.Stdout, os.Stderr},
>>>> > -})
>>>> > -if err != nil {
>>>> > -panic(err.Error())
>>>> > -}
>>>> > -ps, err := proc.Wait()
>>>> > -if err != nil {
>>>> > -panic(err.Error())
>>>> > -}
>>>> > -
>>>> > -os.RemoveAll(tmpgopath)
>>>> > -
>>>> > -if !ps.Success() {
>>>> > -os.Exit(1)
>>>> > -}
>>>> > -}
>>>> > -
>>>> > -func usage() {
>>>> > -fmt.Println(`Usage: llvm-go subcommand [flags]
>>>> > -
>>>> > -Available subcommands: build get install run test print-components
>>>> print-
>>>> > config`)
>>>> > -os.Exit(0)
>>>> > -}
>>>> > -
>>>> > -func main() {
>>>> > -cc := os.Getenv("CC")
>>>> > -cxx := os.Getenv("CXX")
>>>> > -cppflags := os.Getenv("CGO_CPPFLAGS")
>>>> > -cxxflags := os.Getenv("CGO_CXXFLAGS")
>>>> > -ldflags := os.Getenv("CGO_LDFLAGS")
>>>> > -gocmd := "go"
>>>> > -llgo := ""
>>>> > -packagesString := ""
>>>> > -
>>>> > -flags := []struct {
>>>> > -name string
>>>> > -dest *string
>>>> > -}{
>>>> > -{"cc", &cc},
>>>> > -{"cxx", &cxx},
>>>> > -{"go", &gocmd},
>>>> > -{"llgo", &llgo},
>>>> > -{"cppflags", &cppflags},
>>>> > -{"ldflags", &ldflags},
>>>> > -{"packages", &packagesString},
>>>> > -}
>>>> > -
>>>> > -args := os.Args[1:]
>>>> > -LOOP:
>>>> > -for {
>>>> > -if len(args) == 0 {
>>>> > -usage()
>>>> > -}
>>>> > -for _, flag := range flags {
>>>> > -if strings.HasPrefix(args[0], flag.name+"=") {
>>>> > -*flag.dest = args[0][len(flag.name)+1:]
>>>> > -args = args[1:]
>>>> > -continue LOOP
>>>> > -}
>>>> > -}
>>>> > -break
>>>> > -}
>>>> > -
>>>> > -packages := packages
>>>> > -if packagesString != "" {
>>>> > -for _, field := range strings.Fields(packagesString) {
>>>> > -pos := strings.IndexRune(field, '=')
>>>> > -if pos == -1 {
>>>> > -fmt.Fprintf(os.Stderr, "invalid packages value
>>>> > %q, expected 'pkgpath=llvmpath [pkgpath=llvmpath ...]'\n",
>>>> packagesString)
>>>> > -os.Exit(1)
>>>> > -}
>>>> > -packages = append(packages, pkg{
>>>> > -pkgpath:  field[:pos],
>>>> > -llvmpath: field[pos+1:],
>>>> > -})
>>>> > -}
>>>> > -}
>>>> > -
>>>> > -switch args[0] {
>>>> > -case "build", "get", "install", "run", "test":
>>>> > -runGoWithLLVMEnv(args, cc, cxx, gocmd, llgo, cppflags,
>>>> > cxxflags, ldflags, packages)
>>>> > -case "print-components":
>>>> > -printComponents()
>>>> > -case "print-config":
>>>> > -printConfig()
>>>> > -default:
>>>> > -usage()
>>>> > -}
>>>> > -}
>>>> >
>>>> > diff  --git a/llvm/utils/docker/scripts/llvm_checksum/project_tree.py
>>>> > b/llvm/utils/docker/scripts/llvm_checksum/project_tree.py
>>>> > index 31d8703ba234..20e225662ce5 100644
>>>> > --- a/llvm/utils/docker/scripts/llvm_checksum/project_tree.py
>>>> > +++ b/llvm/utils/docker/scripts/llvm_checksum/project_tree.py
>>>> > @@ -72,7 +72,7 @@ def CreateLLVMProjects(single_tree_checkout):
>>>> >        "parallel-libs", "test-suite"
>>>> >    ]
>>>> >    # Projects that reside inside 'tools/' in a single source tree
>>>> checkout.
>>>> > -  TOOLS_PROJECTS = ["clang", "lld", "lldb", "llgo"]
>>>> > +  TOOLS_PROJECTS = ["clang", "lld", "lldb"]
>>>> >
>>>> >    if single_tree_checkout:
>>>> >      projects = [LLVMProject("llvm", "")]
>>>> >
>>>> > diff  --git a/llvm/utils/git-svn/git-llvm
>>>> b/llvm/utils/git-svn/git-llvm
>>>> > index bc60e02aae39..bce285aaeb4b 100755
>>>> > --- a/llvm/utils/git-svn/git-llvm
>>>> > +++ b/llvm/utils/git-svn/git-llvm
>>>> > @@ -72,7 +72,6 @@ LLVM_MONOREPO_SVN_MAPPING = {
>>>> >          'libunwind',
>>>> >          'lld',
>>>> >          'lldb',
>>>> > -        'llgo',
>>>> >          'llvm',
>>>> >          'openmp',
>>>> >          'parallel-libs',
>>>> >
>>>> >
>>>> >
>>>> > _______________________________________________
>>>> > llvm-commits mailing list
>>>> > llvm-commits at lists.llvm.org
>>>> > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200213/eacfc2db/attachment.html>


More information about the llvm-commits mailing list