C++ IR
IR codes contained in the llowing IR list cause error in dg in case of compiling C++ source code. If possible, we'd like to contribute to support C++. Which is important to handle by dg ?
indirectbr invoke resume catchswitch catchret cleanupret extractelement insertelement shufflevector fence cmpxchg atomicrmw landingpad catchpad cleanuppad
Great! I very appreciate that :)
Extractelement and insertelement are vector instructions that are used frequently in C++ IR. For basic C++ support, the instructions connected with exceptions are needed (invoke, landingpad, etc.), but implementing these may be a bit tricky as they yield interprocedural control dependencies. I think that atomic instructions are not necessary in the first phase (however, as we do not support parallelism, I think they could be just mapped to their non-atomic counterparts).