From fb923e98d13e80d0d1cf878ba5b10da4e81b5cd5 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Wed, 28 May 2025 16:03:24 +0100 Subject: [Local] Verify opcodes match for all insts passed to mergeFlags (NFC). (#141231) The logic for tracking flags relies on all instructions having the same opcode. Add an assert to check, as suggested in https://github.com/llvm/llvm-project/pull/140406. PR: https://github.com/llvm/llvm-project/pull/141231 --- llvm/lib/Transforms/Utils/Local.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'llvm/lib/Transforms/Utils/Local.cpp') diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp index 69dcd30..fe1391a 100644 --- a/llvm/lib/Transforms/Utils/Local.cpp +++ b/llvm/lib/Transforms/Utils/Local.cpp @@ -4364,6 +4364,13 @@ bool llvm::inferAttributesFromOthers(Function &F) { } void OverflowTracking::mergeFlags(Instruction &I) { +#ifndef NDEBUG + if (Opcode) + assert(Opcode == I.getOpcode() && + "can only use mergeFlags on instructions with matching opcodes"); + else + Opcode = I.getOpcode(); +#endif if (isa(&I)) { HasNUW &= I.hasNoUnsignedWrap(); HasNSW &= I.hasNoSignedWrap(); -- cgit v1.1