[clang] [llvm] [RISCV] Add Propeller support for RISC-V (PR #170992)

via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 8 07:45:53 PST 2025


leidian977 wrote:

> Thanks! We are interested in this work!
> 
> There are some suggestions:
> 
>     1. Please add some tests for these driver changes.
> 
>     2. Can you describe what we are missing for the support of Propeller in the middle/back ends? For example, I don't know the relationship between Propeller and `insertNoop`.
> 
>     3. Can you show the current status and the state after your changes? Have you tried it on real hardware and do we need anything else to make Propeller work?
1.I've added the tests. Please take a look.

2.The Basic Block Sections feature requires inserting NOP instructions in certain cases to avoid zero-offset exception landing pads.When I compile 510.parest_r from SPEC CPU2017 using the propeller feature, it triggers:
```bash
Target didn't implement insertNoop!
UNREACHABLE executed at llvm/lib/CodeGen/TargetInstrInfo.cpp:84!
......
Running pass 'Function Pass Manager' on module 'ld-temp.o'.
Running pass 'Basic Block Sections Analysis' on function '@_GLOBAL__sub_I_Compute.C' #0 0x00007ed74bafaefc llvm::sys::PrintStackTrace(llvm::raw_ostream&, int)
......
ErrorHandling.cpp:242:55 #11 0x00007ed7449f858c llvm::TargetInstrInfo::insertNoops(llvm::MachineBasicBlock&, llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>, unsigned int) const llvm/lib/CodeGen/TargetInstrInfo.cpp:91:60 #12 0x0000
```

3. Successfully implemented and tested the Propeller feature on RISC-V Clang


https://github.com/llvm/llvm-project/pull/170992


More information about the llvm-commits mailing list