From 30828d4144c3bce2b2547dff3660826fbd7c307b Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Wed, 21 Feb 2024 10:55:15 -0800 Subject: [NFC] DeNaN: Avoid calls on constants (#6326) A constant is either fixed up immediately, or does not need a call. This makes us slightly faster in the fuzzer, but does not change behavior as before those calls all ended up doing nothing (as the numbers were not nans). --- src/passes/DeNaN.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/passes/DeNaN.cpp b/src/passes/DeNaN.cpp index b0bd5fb60..0251a0c58 100644 --- a/src/passes/DeNaN.cpp +++ b/src/passes/DeNaN.cpp @@ -58,20 +58,20 @@ struct DeNaN : public WalkerPass< if (expr->type == Type::f32) { if (c && c->value.isNaN()) { replacement = builder.makeConst(float(0)); - } else { + } else if (!c) { replacement = builder.makeCall(deNan32, {expr}, Type::f32); } } else if (expr->type == Type::f64) { if (c && c->value.isNaN()) { replacement = builder.makeConst(double(0)); - } else { + } else if (!c) { replacement = builder.makeCall(deNan64, {expr}, Type::f64); } } else if (expr->type == Type::v128) { if (c && hasNaNLane(c)) { uint8_t zero[16] = {}; replacement = builder.makeConst(Literal(zero)); - } else { + } else if (!c) { replacement = builder.makeCall(deNan128, {expr}, Type::v128); } } -- cgit v1.2.3