[MergeFuncs] Help request for broken test

Hey list,

I’ve made a small change to some enum values in include/llvm/IR/Instruction.def and it seems to be breaking a fragile test of the MergeFunctions pass. This seemingly small change is exaggerated by the hashing function used by MergeFunctions. Since the hashes are used to sort internal MergeFunctions data structures, the output of this pass is different enough to break the test.

Is there an expert in the MergeFunctions pass that could help me sort this out? I’ve attached a small patch to elucidate the problem. Also, I’d be happy to share more of my findings if desired.

Thanks in advance,

merge.patch (2.19 KB)

A little digging found that the test in question, namely test/Transforms/MergeFunc/call-and-invoke-with-ranges.ll, was modified the last time the enum values in include/llvm/IR/Instruction.def were changed. This was revision r255522.

It seems that it would be safe to make a similar change for my work on D53877. Are there any objections to this?