We occasionally use manual error matching in the EVM (https://github.com/filecoin-project/builtin-actors/blob/e1ef665b2f2dca1448c04c9b439e9cdbc9e0b511/actors/evm/src/interpreter/execution.rs#L255-L259) instead of the question mark operator.
However, the perf issue was apparently fixed in rust-lang/rust#100693, which got included in 1.64 (which we now use). We should verify that these if let and match statements are no longer performance critical, and remove them.