commit 2ab78937dd29fbc299ac434f962a5ff41002cc43 (tree)
parent eff58d6c18de66cbf0c0dbd7c3ced9ef9ffbcde6
Author: Rahul Prabhu <cupertinorp@gmail.com>
Date: Sun, 21 Jan 2024 22:45:03 +0530
Don't assume a write if an operand is not in function parameters
Liveness assumes that if the operand is not in the parameters of
a function call it is being written to, resulting in pointless memcpies.
Diffstat:
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Liveness.zig b/src/Liveness.zig
@@ -489,7 +489,7 @@ pub fn categorizeOperand(
for (args, 0..) |arg, i| {
if (arg == operand_ref) return matchOperandSmallIndex(l, inst, @as(OperandInt, @intCast(i + 1)), .write);
}
- return .write;
+ return .none;
}
var bt = l.iterateBigTomb(inst);
if (bt.feed()) {
@@ -504,7 +504,7 @@ pub fn categorizeOperand(
if (arg == operand_ref) return .write;
}
}
- return .write;
+ return .none;
},
.select => {
const pl_op = air_datas[@intFromEnum(inst)].pl_op;