This patch adds lowering support for atomic capture operation. First is created a region (without any operand) for the atomic capture operation. Then based on one of the following configurations...
- [update-stmt, capture-stmt]
- [capture-stmt, update-stmt]
- [capture-stmt, write-stmt]
... the lowering proceeds by creating these individual operations inside the atomic capture's region.
For the array element case, please add a Not Yet Implemented TODO. We can handle this separately.