Loading...
Loading...
Code generation and backends skill for LLVM targets. Use when explaining instruction selection, DAG legalization, target lowering, or adding backend support overview. Activates on queries about LLVM backend, instruction selection, target lowering, llc, TableGen, or codegen pipeline.
npx skill4agent add mohitmishra786/low-level-dev-skills code-generation-and-backendsskills/compiler-internals/llvm-passesllcLLVM IR per function
├── IR legalizer (types/ops target supports)
├── SelectionDAGBuilder
├── LegalizeTypes / LegalizeOps
├── Instruction selection (pattern match TableGen)
├── Scheduling (pre-RA)
├── Register allocation
├── Prolog/epilog insertion
└── AsmPrinter → .s objectclang -c -emit-llvm -O2 -o foo.bc foo.c
llc -march=aarch64 -O2 foo.bc -o foo.s
llc -march=riscv64 -O2 foo.bc -o foo-rv.sdef ADD32rr : Pat<(add i32 GPR:$a, GPR:$b),
(ADD32rr GPR:$a, GPR:$b)>;.tdCC_AArch64CC_X86_64skills/computer-architecture/abi-and-calling-conventionsclang --target=arm-none-eabi -c -O2 foo.c
llc -mtriple=thumbv7em-none-eabi foo.bc+neon+crcTargetLowering/code-generation-and-backends Trace how this IR add becomes AArch64 ADD instruction| Symptom | Cause | Fix |
|---|---|---|
| Unsupported IR op on target | Legalize or expand op |
| Wrong soft-float | ABI mismatch | Set |
| Huge stack frame | Many spills post-RA | IR-level pressure reduction |
| llc vs clang differ | Different targets passed | Same |
| TableGen build fail | Syntax in .td | |
skills/compiler-internals/llvm-ir-and-passesskills/compiler-internals/compiler-optimizations-deepskills/compilers/cross-gccskills/computer-architecture/abi-and-calling-conventionsskills/low-level-programming/assembly-arm