All Projects → antoyo → Rustc_codegen_gcc

antoyo / Rustc_codegen_gcc

Licence: other
libgccjit AOT codegen for rustc

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Rustc codegen gcc

Pyms
Library of utils to create REST Python Microservices
Stars: ✭ 120 (+3.45%)
Mutual labels:  hacktoberfest
Csharp Mode
A major-mode for editing C# in emacs
Stars: ✭ 121 (+4.31%)
Mutual labels:  hacktoberfest
Across Tabs
Easy communication between cross-origin browser tabs. Simplified "CORS"ing!
Stars: ✭ 1,575 (+1257.76%)
Mutual labels:  hacktoberfest
Spectre.cli
An extremely opinionated command-line parser.
Stars: ✭ 121 (+4.31%)
Mutual labels:  hacktoberfest
Geoext3
A JavaScript framework that combines the GIS functionality of OpenLayers with all features of the ExtJS library
Stars: ✭ 121 (+4.31%)
Mutual labels:  hacktoberfest
Eventum
Eventum Issue Tracking System
Stars: ✭ 120 (+3.45%)
Mutual labels:  hacktoberfest
Docs Cn
TiDB/TiKV/PD documentation in Chinese.
Stars: ✭ 1,646 (+1318.97%)
Mutual labels:  hacktoberfest
Inav
INAV: Navigation-enabled flight control software
Stars: ✭ 1,830 (+1477.59%)
Mutual labels:  hacktoberfest
Downlords Faf Client
Official client for Forged Alliance Forever
Stars: ✭ 121 (+4.31%)
Mutual labels:  hacktoberfest
Puppet Mcollective
MCollective Server and Client Puppet Module
Stars: ✭ 121 (+4.31%)
Mutual labels:  hacktoberfest
Hubspot3
python3.5+ hubspot client based on hapipy, but modified to use the newer endpoints and non-legacy python
Stars: ✭ 121 (+4.31%)
Mutual labels:  hacktoberfest
Csp Auditor
Burp and ZAP plugin to analyse Content-Security-Policy headers or generate template CSP configuration from crawling a Website
Stars: ✭ 121 (+4.31%)
Mutual labels:  hacktoberfest
Ysi Includes
Just the YSI include files, none of the extra stuff.
Stars: ✭ 122 (+5.17%)
Mutual labels:  hacktoberfest
React Kanban Dnd
📋 Open source kanban board built with React
Stars: ✭ 121 (+4.31%)
Mutual labels:  hacktoberfest
Okteto
Develop your applications directly in your Kubernetes Cluster
Stars: ✭ 1,937 (+1569.83%)
Mutual labels:  hacktoberfest
Cyclotron
A web platform for constructing dashboards.
Stars: ✭ 1,554 (+1239.66%)
Mutual labels:  hacktoberfest
Aura.auth
Provides a unified interface to local and remote authentication systems.
Stars: ✭ 121 (+4.31%)
Mutual labels:  hacktoberfest
Tobab
tobab: the poor mans identity aware proxy, easy to use setup for beyondcorp in your homelab
Stars: ✭ 122 (+5.17%)
Mutual labels:  hacktoberfest
Defold
Defold is a completely free to use game engine for development of desktop, mobile and web games.
Stars: ✭ 1,938 (+1570.69%)
Mutual labels:  hacktoberfest
Pyorbital
Orbital and astronomy computations in python
Stars: ✭ 119 (+2.59%)
Mutual labels:  hacktoberfest

WIP libgccjit codegen backend for rust

Despite its name, libgccjit can be used for ahead-of-time compilation, as is used here.

Motivation

The primary goal of this project is to be able to compile Rust code on platforms unsupported by LLVM. A secondary goal is to check if using the gcc backend will provide any compilation speed improvement.

Building

This requires a patched libgccjit in order to work. The following two patches need to be applied:

Put the path to your custom build of libgccjit in the file gcc_path.

$ git clone https://github.com/antoyo/rustc_codegen_gcc.git
$ cd rustc_codegen_gcc
$ ./prepare.sh # download and patch sysroot src and install hyperfine for benchmarking
$ ./test.sh --release

Usage

$cg_gccjit_dir is the directory you cloned this repo into in the following instructions.

Cargo

$ CHANNEL="release" $cg_gccjit_dir/cargo.sh run

If you compiled cg_gccjit in debug mode (aka you didn't pass --release to ./test.sh) you should use CHANNEL="debug" instead or omit CHANNEL="release" completely.

Rustc

You should prefer using the Cargo method.

$ rustc +$(cat $cg_gccjit_dir/rust-toolchain) -Cpanic=abort -Zcodegen-backend=$cg_gccjit_dir/target/release/librustc_codegen_gcc.so --sysroot $cg_gccjit_dir/build_sysroot/sysroot my_crate.rs

Env vars

CG_GCCJIT_INCR_CACHE_DISABLED
Don't cache object files in the incremental cache. Useful during development of cg_gccjit to make it possible to use incremental mode for all analyses performed by rustc without caching object files when their content should have been changed by a change to cg_gccjit.
CG_GCCJIT_DISPLAY_CG_TIME
Display the time it took to perform codegen for a crate
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].