[llvm][MIRVRegNamerUtils] Adding hashing on CImm / FPImm MachineOperands.
authorPuyan Lotfi <puyan@puyan.org>
Mon, 16 Dec 2019 18:23:03 +0000 (13:23 -0500)
committerPuyan Lotfi <puyan@puyan.org>
Mon, 16 Dec 2019 23:25:04 +0000 (18:25 -0500)
commitf63b64c0c3b486f164c3c66cce9f13df2bac6b6e
tree48e3613733b42f20b4289e61c212328238b860bf
parentaa5ee8f244441a8ea103a7e0ed8b6f3e74454516
[llvm][MIRVRegNamerUtils] Adding hashing on CImm / FPImm MachineOperands.

This patch makes it so that cases where multiple instructions that
differ only in their ConstantInt or ConstantFP MachineOperand values no
longer collide. For instance:

%0:_(s1) = G_CONSTANT i1 true
%1:_(s1) = G_CONSTANT i1 false
%2:_(s32) = G_FCONSTANT float 1.0
%3:_(s32) = G_FCONSTANT float 0.0

Prior to this patch the first two instructions would collide together.
Also, the last two G_FCONSTANT instructions would also collide. Now they
will no longer collide.

Differential Revision: https://reviews.llvm.org/D71558
llvm/lib/CodeGen/MIRVRegNamerUtils.cpp
llvm/test/CodeGen/MIR/Generic/CFPImmMIRCanonHash.mir [new file with mode: 0644]