Craig Topper

Principal Compiler Engineer at SiFive

Beaverton, Oregon, United States
email-iconphone-icongithub-logolinkedin-logotwitter-logostackoverflow-logofacebook-logo
Join Prog.AI to see contacts
email-iconphone-icongithub-logolinkedin-logotwitter-logostackoverflow-logofacebook-logo
Join Prog.AI to see contacts

Summary

🤩
Rockstar
🎓
Top School
Craig Topper is a Principal Compiler Engineer with 17 years of experience, currently driving compiler and toolchain optimizations at SiFive from Beaverton, Oregon. He specializes in backend compiler work and ISA support, with notable contributions to high-profile open-source projects including LLVM and apple/swift-llvm where he optimized APInt bitwise operations and streamlined code footprint. His work on RISC-V support tackled floating-point edge cases (f16, i128), FMA codegen, and frame-index/memory-operand handling, reflecting deep pragmatic expertise in code generation and correctness. A Purdue Computer Science graduate, Craig pairs rigorous systems-level thinking with hands-on refactors that modernize legacy tooling and reduce binary size—an engineer who improves both performance and maintainability.
code17 years of coding experience
bookBachelor, Computer Science, Bachelor, Computer Science at Purdue University
github-logo-circle

Github Skills (27)

c-language10
bitwise10
llvm10
risc-v10
refactor10
compiler-optimization10
bit10
refactoring10
cprogramming-language10
optimization10
float329
assembly9
integer-arithmetic9
assemble9
assembler9

Programming languages (13)

C++CRustRPCMakefileTeXHTMLTypeScript

Github contributions (5)

github-logo-circle
llvm/llvm-project

Mar 2022 - Jan 2023

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
Role in this project:
userBack-end Developer & Compiler Optimization Engineer
Contributions:3931 reviews, 16 commits, 1783 PRs in 10 months
Contributions summary:Craig was responsible for contributing to the RISC-V instruction set architecture (ISA) project, specifically focusing on compiler and disassembler improvements. Their commits involved bug fixes and optimizations related to handling floating-point operations, particularly for f16 and i128 data types, including modifications to improve code generation related to FMA instructions and dealing with the Zfinx/Zdinx and Zhinx extensions. They also addressed memory management and potential code generation errors by improving the handling of frame index references, memory operand, and other related operations.
compilerstechnologiesclangsubmittoolchain
Mirror kept for legacy. Moved to https://github.com/llvm/llvm-project
Role in this project:
userBack-end Developer
Contributions:14 commits in 2 years 1 month
Contributions summary:Craig primarily focused on refactoring and modernizing the codebase, specifically within the clang-tools-extra repository which focuses on clang tooling. Their work included updating C++11 features by replacing LLVM_OVERRIDE and using 'nullptr', in addition to code simplification. Further contributions involved updates to the build process and the inclusion of colored output for diagnostics.
keptwindowsllvm
Find and Hire Top DevelopersWe’ve analyzed the programming source code of over 60 million software developers on GitHub and scored them by 50,000 skills. Sign-up on Prog,AI to search for software developers.
Request Free Trial
Craig Topper - Principal Compiler Engineer at SiFive