Skip to content
/ garm Public

Advanced ARM64 Compiler for High-Performance on the GO

License

Notifications You must be signed in to change notification settings

go-dockly/garm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gARM彡 (´⊙o⊙`)♨

Advanced ARM64 Compiler for High-Performance on the GO

Logo

gARM彡 is a compiler for ARM64 assembly combining Go's simplicity with low-level control and high performance. Offering optimizations, hardware-level tuning, security controls, debugging tools, and more for the avid hacker. We love our gopher more than anything it's always been a loyal companion protecting and providing us.

Documentation Σ(°△°)ꪱꪱ

𒇫 ARM assembly 101/

𒇫 Docs/

𒇫 Links/

૮( OᴗO)っ Philosophy

While there are many Go compilers and ARM assemblers, there's a gap in the market for tools that specifically optimize Go code for ARM's unique features such as:

  • ARM's flexible second operand in arithmetic instructions
  • Conditional execution capabilities
  • NEON SIMD operations for vectorization
  • Hardware divide and multiply-accumulate instructions

Market Timing

With the rising dominance of ARM architecture (Apple M-series, AWS Graviton, mobile devices, embedded systems), having tools that can optimize specifically for ARM64 is becoming increasingly important.

Engineering

  • (AST) -> (SSA) -> (IR) -> (Optimizer) -> (Assembly)

ദ്ദി(˵•̀ᴗ -˵)ᕤ Road map

  • gARM彡 by default compiles with Generational GC
  • Offer choice between GC algoritms or none
  • High-performance computing on ARM servers (5x go performance on ARM64)
  • Cross platform mobile / embedded systems where performance is critical
  • Cloud applications running on ARM instances

Performance (๑•̀ᗝ•́)૭

𒇫 todo

Contribute ദ്ദി(༎ຶ‿༎ຶ)

Github Stats

(back to top)

About

Advanced ARM64 Compiler for High-Performance on the GO

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published