Skip to content
llvm-project cloned from https://github.com/llvm/llvm-project and modified for VE
C++ LLVM C Assembly Python Objective-C Other
Branch: develop
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
clang-tools-extra Refactor getDeclAtPosition() to use SelectionTree + targetDecl() Oct 31, 2019
clang [VE] Add intrinsics for vector logical and shift with lo, up suffix Nov 8, 2019
compiler-rt Merge remote-tracking branch 'upstream/master' into feature/merge-ups… Nov 4, 2019
debuginfo-tests Quote path to Python 3 executable in case it contains spaces Oct 31, 2019
libc [libc] Do not add unittests if LLVM_INCLUDE_TESTS is OFF. Oct 15, 2019
libclc [www] Change URLs to HTTPS. Oct 24, 2019
libcxx Merge remote-tracking branch 'upstream/master' into feature/merge-ups… Nov 4, 2019
libcxxabi Merge remote-tracking branch 'upstream/master' into feature/merge-ups… Nov 4, 2019
libunwind Merge remote-tracking branch 'upstream/master' into feature/merge-ups… Nov 4, 2019
lld comment typo fix to cycle bots Oct 31, 2019
lldb Fix typeo in CPU_TYPE_ARM64_32 for older SDKs. Oct 31, 2019
llgo IR: Support parsing numeric block ids, and emit them in textual output. Mar 22, 2019
llvm [VE] Cleanup Nov 13, 2019
openmp Merge remote-tracking branch 'upstream/master' into feature/merge-ups… Nov 4, 2019
parallel-libs Fix typos throughout the license files that somehow I and my reviewers Jan 21, 2019
polly [www] Change URLs to HTTPS. Oct 24, 2019
pstl [pstl] Allow customizing whether per-TU insulation is provided Aug 13, 2019
.arcconfig Update monorepo .arcconfig with new project callsign. Jan 31, 2019
.clang-format Add .clang-tidy and .clang-format files to the toplevel of the Jan 29, 2019
.clang-tidy Disable tidy checks with too many hits Feb 1, 2019
.git-blame-ignore-revs Add LLDB reformatting to .git-blame-ignore-revs Sep 4, 2019
.gitignore Add a newline at the end of the file Sep 4, 2019
README.md Merge remote-tracking branch 'upstream/master' into feature/merge-ups… Nov 4, 2019

README.md

LLVM for NEC SX-Aurora VE

This repository is a clone of public LLVM repository (https://github.com/llvm/llvm-project), plus experimental modifications which provide support for the NEC SX-Aurora TSUBASA Vector Engine (VE). See README_MORE.rst.

You can start with the PRM package.

% yum install \
  https://sx-aurora.com/repos/veos/ef_extra/x86_64/llvm-ve-1.5.0-1.5.0-1.x86_64.rpm \
  https://sx-aurora.com/repos/veos/ef_extra/x86_64/llvm-ve-link-1.5.0-1.x86_64.rpm

Then use clang like below. Clang++ is also available.

$ /opt/nec/nosupport/llvm-ve/clang -target ve-linux -O3 ...
  • If you are interested in intrinsic functions for vector instructions, see the manual.
  • If you are interested in the guided vectorization, or region vectorizer, see RV.
  • If you want to build the llvm-ve, see llvm-dev and Compile.rst.
  • Automatic vectorization is not supported.

The LLVM Compiler Infrastructure

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.

Getting Started with the LLVM System

Taken from https://llvm.org/docs/GettingStarted.html.

Overview

Welcome to the LLVM project!

The LLVM project has multiple components. The core of the project is itself called "LLVM". This contains all of the tools, libraries, and header files needed to process intermediate representations and converts it into object files. Tools include an assembler, disassembler, bitcode analyzer, and bitcode optimizer. It also contains basic regression tests.

C-like languages use the Clang front end. This component compiles C, C++, Objective C, and Objective C++ code into LLVM bitcode -- and from there into object files, using LLVM.

Other components include: the libc++ C++ standard library, the LLD linker, and more.

Getting the Source Code and Building LLVM

The LLVM Getting Started documentation may be out of date. The Clang Getting Started page might have more accurate information.

This is an example workflow and configuration to get and build the LLVM source:

  1. Checkout LLVM (including related subprojects like Clang):

    • git clone https://github.com/llvm/llvm-project.git

    • Or, on windows, git clone --config core.autocrlf=false https://github.com/llvm/llvm-project.git

  2. Configure and build LLVM and Clang:

    • cd llvm-project

    • mkdir build

    • cd build

    • cmake -G <generator> [options] ../llvm

      Some common generators are:

      • Ninja --- for generating Ninja build files. Most llvm developers use Ninja.
      • Unix Makefiles --- for generating make-compatible parallel makefiles.
      • Visual Studio --- for generating Visual Studio projects and solutions.
      • Xcode --- for generating Xcode projects.

      Some Common options:

      • -DLLVM_ENABLE_PROJECTS='...' --- semicolon-separated list of the LLVM subprojects you'd like to additionally build. Can include any of: clang, clang-tools-extra, libcxx, libcxxabi, libunwind, lldb, compiler-rt, lld, polly, or debuginfo-tests.

        For example, to build LLVM, Clang, libcxx, and libcxxabi, use -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi".

      • -DCMAKE_INSTALL_PREFIX=directory --- Specify for directory the full pathname of where you want the LLVM tools and libraries to be installed (default /usr/local).

      • -DCMAKE_BUILD_TYPE=type --- Valid options for type are Debug, Release, RelWithDebInfo, and MinSizeRel. Default is Debug.

      • -DLLVM_ENABLE_ASSERTIONS=On --- Compile with assertion checks enabled (default is Yes for Debug builds, No for all other build types).

    • Run your build tool of choice!

      • The default target (i.e. ninja or make) will build all of LLVM.

      • The check-all target (i.e. ninja check-all) will run the regression tests to ensure everything is in working order.

      • CMake will generate build targets for each tool and library, and most LLVM sub-projects generate their own check-<project> target.

      • Running a serial build will be slow. To improve speed, try running a parallel build. That's done by default in Ninja; for make, use make -j NNN (NNN is the number of parallel jobs, use e.g. number of CPUs you have.)

    • For more information see CMake

Consult the Getting Started with LLVM page for detailed information on configuring and compiling LLVM. You can visit Directory Layout to learn about the layout of the source code tree.

You can’t perform that action at this time.