Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Libgccjit codegen #87260

Merged
merged 26 commits into from
Sep 29, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
afae271
Initial commit
antoyo May 10, 2020
f7237f1
Add 'compiler/rustc_codegen_gcc/' from commit 'afae271d5d3719eeb92c18…
antoyo Aug 13, 2021
8841e9e
Fix tidy
antoyo Jul 19, 2021
7132ce6
Exclude rustc_codegen_gcc from namespace
antoyo Jul 19, 2021
0c89065
Update to nightly-2021-08-12 (#61)
antoyo Aug 14, 2021
6fc0696
Merge commit '0c89065b934397b62838fe3e4ef6f6352fc52daf' into libgccji…
antoyo Aug 14, 2021
e228f0c
Cleanup (#67)
antoyo Aug 15, 2021
3d5d4e3
Merge commit 'e228f0c16ea8c34794a6285bf57aab627c26b147' into libgccji…
antoyo Aug 15, 2021
6f50986
Empty gcc_path
antoyo Aug 15, 2021
87f8525
Merge commit '6f50986667debbfc67776304a8ee23fe0158613f' into libgccji…
antoyo Aug 15, 2021
5dad13c
Update custom rustc instructions (#73)
antoyo Aug 28, 2021
7c707e4
Implement basic inline asm support (#72)
Sep 5, 2021
4d3dcd4
Remove FUNDING.yml
antoyo Sep 16, 2021
8ec7976
fix: gh origin on readme (#83)
emersonlaurentino Sep 17, 2021
48d60ab
Update to nightly-2021-09-11 (#79)
Sep 17, 2021
df48731
Merge commit '48d60ab7c505c6c1ebb042eacaafd8dc9f7a9267' into libgccji…
antoyo Sep 17, 2021
0f4b616
Add notes for cross-compilation to gcc-only targets (#68)
antoyo Sep 26, 2021
4e7e822
Impove handling of registers in inline asm (#82)
Sep 26, 2021
64c561d
Fix global initialization (#91)
antoyo Sep 26, 2021
ab4ff2d
Cleanup fix for global initialization (#93)
antoyo Sep 27, 2021
63608ac
Fix/mismatch types (#94)
antoyo Sep 27, 2021
11c2023
Fix/count trailing zeroes (#95)
antoyo Sep 28, 2021
9809f5d
Update to nightly-2021-09-28 (#97)
antoyo Sep 28, 2021
7f32dd5
Merge commit '9809f5d21990d9e24b3e9876ea7da756fd4e9def' into libgccji…
antoyo Sep 28, 2021
cd4810d
Fix warnings (#98)
antoyo Sep 28, 2021
90be409
Merge commit 'cd4810de42c57b64b74dae09c530a4c3a41f87b9' into libgccji…
antoyo Sep 28, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ members = [
exclude = [
"build",
"compiler/rustc_codegen_cranelift",
"compiler/rustc_codegen_gcc",
"src/test/rustdoc-gui",
# HACK(eddyb) This hardcodes the fact that our CI uses `/checkout/obj`.
"obj",
Expand Down
96 changes: 96 additions & 0 deletions compiler/rustc_codegen_gcc/.github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: CI

on:
- push
- pull_request

jobs:
build:
runs-on: ubuntu-latest

strategy:
fail-fast: false

steps:
- uses: actions/checkout@v2

- name: Install packages
run: sudo apt-get install ninja-build ripgrep

- name: Download artifact
uses: dawidd6/action-download-artifact@v2
with:
workflow: main.yml
name: libgccjit.so
path: gcc-build
repo: antoyo/gcc

- name: Setup path to libgccjit
run: |
echo $(readlink -f gcc-build) > gcc_path
ln gcc-build/libgccjit.so gcc-build/libgccjit.so.0

- name: Set LIBRARY_PATH
run: |
echo "LIBRARY_PATH=$(cat gcc_path)" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$(cat gcc_path)" >> $GITHUB_ENV

# https://github.com/actions/cache/issues/133
- name: Fixup owner of ~/.cargo/
# Don't remove the trailing /. It is necessary to follow the symlink.
run: sudo chown -R $(whoami):$(id -ng) ~/.cargo/

- name: Cache cargo installed crates
uses: actions/cache@v1.1.2
with:
path: ~/.cargo/bin
key: cargo-installed-crates2-ubuntu-latest

- name: Cache cargo registry
uses: actions/cache@v1
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-cargo-registry2-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo index
uses: actions/cache@v1
with:
path: ~/.cargo/git
key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo target dir
uses: actions/cache@v1.1.2
with:
path: target
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('rust-toolchain') }}

- name: Build
run: |
./prepare_build.sh
./build.sh
cargo test
./clean_all.sh

- name: Prepare dependencies
run: |
git config --global user.email "user@example.com"
git config --global user.name "User"
./prepare.sh

# Compile is a separate step, as the actions-rs/cargo action supports error annotations
- name: Compile
uses: actions-rs/cargo@v1.0.3
with:
command: build
args: --release

- name: Test
run: |
# Enable backtraces for easier debugging
export RUST_BACKTRACE=1

# Reduce amount of benchmark runs as they are slow
export COMPILE_RUNS=2
export RUN_RUNS=2

./test.sh --release
20 changes: 20 additions & 0 deletions compiler/rustc_codegen_gcc/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
target
**/*.rs.bk
*.rlib
*.o
perf.data
perf.data.old
*.events
*.string*
/build_sysroot/sysroot
/build_sysroot/sysroot_src
/build_sysroot/Cargo.lock
/build_sysroot/test_target/Cargo.lock
/rust
/simple-raytracer
/regex
gimple*
*asm
res
test-backend
gcc_path
Loading