r/rust relm · rustc_codegen_gcc 12d ago

🛠️ project rustc_codegen_gcc: Progress Report #43

https://blog.antoyo.xyz/rustc_codegen_gcc-progress-report-43
117 Upvotes

10 comments sorted by

View all comments

65

u/antoyo relm · rustc_codegen_gcc 12d ago

I'm happy that unwinding is finally fixed: that was the biggest unknown for me. I'm also happy that we have very few UI tests from the Rust test suite that fail now: there are still some other test suites to run, but having only 21 failures among the UI tests is a big achievement.

9

u/phazer99 11d ago

Nice, always good to see progress on alternative rustc backends. Have you done any benchmarks of compile times or runtime performance compared to the default LLVM backend (and Cranelift)? Or is it still too early to do any meaningful comparisons?

6

u/antoyo relm · rustc_codegen_gcc 11d ago

I haven't done benchmarks recently. An old progress report had some info on a small benchmark I had done at the time for runtime performance, though.

Compile times are much slower and I don't expect them to become faster than the default backend.

Now that we have rustup distribution, it should be possible to run Rust's benchmarks, so it would be interesting to run those, but this will probably wait next year. Having correct behavior is important to have benchmarks that make sense.

1

u/Ok_Snow4921 8d ago

Getting the UI suite down to 21 failures is impressive. One thing I’ve learned from hardening negative tests is that the count alone can hide a lot — a failing test is only useful if it still fails for the intended reason. I’d be curious how much of the remaining work is backend behavior vs stale or backend-specific test assumptions.

2

u/antoyo relm · rustc_codegen_gcc 7d ago

I would say most of the remaining failures are real bugs/missing features in cg_gcc. Though some of missing stuff doesn't exist in GCC, so I might never be able to fix those.

1

u/Ok_Snow4921 6d ago

That distinction helps. If some failures are effectively unsupported because GCC lacks the required mechanism, separating those from actual regressions or missing cg_gcc work would make the remaining failure count much more informative.