SIGN IN SIGN UP

C++: Fix join in IR construction.

Before (on an internal Microsoft repo):

[2026-08-28 14:36:46] Evaluated non-recursive predicate TranslatedElement::TranslatedElement.getInstructionSuccessorInternal/2#dispred#a6e054ca@2248725r in 470505ms (size: 136995987).
Evaluated relational algebra for predicate TranslatedElement::TranslatedElement.getInstructionSuccessorInternal/2#dispred#a6e054ca@2248725r with tuple counts:
               437   ~0%    {2} r158 = JOIN EdgeKind::EdgeKindImpl#8ed21aeb WITH num#InstructionTag::CallTargetTag#8c4ab419 CARTESIAN PRODUCT OUTPUT Lhs.0, Rhs.0
               437   ~0%    {3}    | JOIN WITH num#InstructionTag::CallTag#a77d4021 CARTESIAN PRODUCT OUTPUT Rhs.0, Lhs.0, Lhs.1
        1070556919   ~0%    {4}    | JOIN WITH `TranslatedElement::TranslatedElement.getInstruction/1#dispred#f6df9482_102#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Rhs.2
            316388   ~1%    {4}    | JOIN WITH TranslatedInitialization::TranslatedDefaultFieldInitialization#d9c761ed ON FIRST 1 OUTPUT Lhs.0, Lhs.2, Lhs.1, Lhs.3

After:

[2026-09-03 13:56:28] Evaluated non-recursive predicate TranslatedInitialization::getCallInstruction/1#c88d849b@3e960544 in 40ms (size: 724).
Evaluated relational algebra for predicate TranslatedInitialization::getCallInstruction/1#c88d849b@3e960544 with tuple counts:
        724  ~3%    {2} r1 = JOIN `_TranslatedElement::TranslatedElement.getInstruction/1#dispred#f6df9482_102#join_rhs_num#Instruction__#shared#1` WITH TranslatedInitialization::TranslatedDefaultFieldInitialization#d9c761ed ON FIRST 1 OUTPUT Lhs.0, Lhs.1
                    return r1

              437   ~0%    {2} r5 = JOIN EdgeKind::EdgeKindImpl#8ed21aeb WITH num#InstructionTag::CallTargetTag#8c4ab419 CARTESIAN PRODUCT OUTPUT Lhs.0, Rhs.0
           316388   ~1%    {4}    | JOIN WITH `TranslatedInitialization::getCallInstruction/1#c88d849b` CARTESIAN PRODUCT OUTPUT Rhs.0, Lhs.1, Lhs.0, Rhs.1
M
Mathias Vorreiter Pedersen committed
c99bff955ecdd663e298955a4df8128c4861af79
Parent: 7aa084c