Why can't Rust use LLVM FastIsel

#1

Is there any technical reason why Rust isn’t using FastIsel in LLVM?

It’d be nice to get compile time benefits from using it.

0 Likes

#2

I think rustc just tends to emit code that isn’t handled by FastISel, so it falls back to the slower SelectionDAG. Or is it not using FastISel at all?

0 Likes

#3

The biggest problem here is that FastISel does not support the invoke instruction, which Rust uses for unwinding.

According to sunfish, implementing it would be at least a month’s worth of work in LLVM.

0 Likes

#4

Ah ok. I was guessing if it would be related to unwinding. I’m sad, but I understand it’s not worth the effort at this moment in Rust’s life.

Thank you.

0 Likes

#5

It doesn’t use FastISe at all.

0 Likes

#6
0 Likes

closed #7

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.

0 Likes