• Stars
    star
    161
  • Rank 232,368 (Top 5 %)
  • Language
    C++
  • Created almost 5 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

PLCT实验室维护的ollvm分支。原始代码来自于 https://github.com/obfuscator-llvm/obfuscator 移植到了最新的 LLVM 上。

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.

credits

本仓库的porting的原始代码,commit来自llvm官方

commit 79b773fe7fffbea3bee2b34ace8f8ca5bae8526d 移植自 AllocAndInit/ollvm5.0.1 (该项目中stringobfuscation部分代码和 GoSSIP-SJTU/Armariris比较接近)

感谢AllocAndInit,GoSSIP-SJTU等开源的贡献!

More Repositories

1

pacific

方舟编译器的Runtime参考实现。这不是华为官方项目,是PLCT实验室的培训项目。
C
78
star
2

openarkcompiler

PLCT实验室维护的内部版本。跟方舟编译器官方代码并不总是一致。
C++
77
star
3

riscv-isa-manual-cn

TeX
62
star
4

c910-llvm

平头哥玄铁C910的LLVM工具链支持,由PLCT实验室提供,非官方版本
LLVM
56
star
5

tarsier-oerv

Project magament for porting openEuler to RISC-V
Python
33
star
6

arkcompiler-materials

PLCT实验室收集的方舟编译器的相关分析文章和新闻
17
star
7

PLCT-OpenDay-2020

PLCT实验室2020年开放日活动的演讲资料
13
star
8

tarsier-monthly

Monthly Progress Reports for RISC-V Operating Systems
12
star
9

PLCT-OpenDay-2019

PLCT实验室2019年开放日资料(OpenDay-2019)
11
star
10

Summer-2020-Homepage

开源软件供应链点亮计划 - 暑期2020的主页代码。This repository is the homepage for Open Source Promotion Plan - Summer 2020 built with create-react-app.
JavaScript
10
star
11

eternal-balance

PLCT实验室内部的测评体系,偏重编译系统地性能(速度)、安全性、代码体积三个方面。
CMake
9
star
12

tarsier-meta

The meta info of Tarsier Project. Reports, Slides, Roadmaps.
Java
7
star
13

ACM-MM-2019-ACO

Data Priming Network for Automatic Check-Out. This repository implements DPNet (Data Priming Network for Automatic Check-Out) using PyTorch 1.0.1 . This implementation is heavily influenced by the project maskrcnn-benchmark.
Python
7
star
14

gt

专注于高性能,低延迟,省内存的内网穿透解决方案。
5
star
15

bishengjdk-11-mirror

mirror of bishengJDK-11 https://gitee.com/openeuler/bishengjdk-11/tree/risc-v
Java
4
star
16

tablegen-example

TableGenExample, PLCT OpenDay 2019 报告的实例代码
Makefile
4
star
17

summer2020-help

开源软件供应链点亮计划 - 暑期2020的活动帮助文档。This repository is the help page for Open Source Promotion Plan - Summer 2020 built with Gitbook.
4
star
18

riscv-backport-llvm8

PLCT实验室提供的用于USTC编译原理实验课程
C++
4
star
19

riscv-llvm

PLCT实验室的RISC-V定制工具链项目
C++
4
star
20

tarsier-infra

Infra for Tarsier Projects.
3
star
21

RVTensor

An operating system for RISC-V architecture, based on Linux kernel and FreeRTOS.
C++
3
star
22

Bingo

Building Machine Learning Operating System
Shell
3
star
23

rv-release

构建面向RISC-V的操作系统RVOS。
2
star
24

domain-adaption

Python
2
star
25

autobuild-openeuler4riscv

Tools scripts for auto-building openEuler SRPMs for RISC-V.
Shell
1
star
26

openeuler-riscv-devtools

为 openEuler RISC-V 打包构建中可能用到的各类工具。
Shell
1
star
27

sematree

Python
1
star
28

quickjs-riscv

PLCT实验室维护的QuickJS. Run QuickJS on RISC-V64GC and RISC-V32GC
C
1
star