tree 2288527d1ed7c543fe9edd1f9e9fcc376d3fffcb
parent 01628d6fd0b3f85ffc42668f71200b1ad62100b1
author Steven Perron <stevenperron@google.com> 1759283606 -0400
committer GitHub <noreply@github.com> 1759283606 -0400
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJo3ImWCRC1aQ7uu5UhlAAAPpIQAKa4Xaj80A0yKHxtkektKT7R
 BKtTAU/agJPkrYJoLK6o6ps7BpHA6KayXh9Bm97XP5a5OnRAyq8Ujz9/r6+jr+Yq
 pAtgTxLMNeKypJ/4j/rNFbD22rKLMwnXR/3ax7OB6gw44zz1EXAjQbP6PVZagNiD
 SOpl3w4TmmxWlfGF3vS/92JElA3jTmgq8F0nuFB2WZyA1OZP03H12H5r5bfOgCF+
 ECa9NkhteIZ8Bs2JKyKfXEBcjb10uGSfqQVLdp8ThuaTn7yZ3pmNA4r7Ejei1HE8
 siAjIomPCHzkZMnKdxB1XghAKlTp6THgLadp2gxwUfTS8XVbGYwcnIQPaX6mEETt
 M6ugZXMWvpQUiuRAstA6Db3f1gdS4ltfkiqGhqTFdS+gBawswOajCqkt8pldvG7F
 ydmwZezr1IMxOl4vgq0KhcR2rs6w4XkTMQiHSDlFI2uDrpursfMU6i+tnni9x1Bi
 JtHXl5Ml8ldQ+rDUtCp4RMgM5wqvt625VJJThS2Px6Kk+2YFU57Jym45kdIt2ava
 j4SoTht+UV7fbiPHp4rVI8qGSrxws9UGmyhGlam7GW4VDdru6INY3zBMmp/ghPhp
 MIvqgfYVG0CLl9hJVWxtzlbN4rd/OMiBlUEJIXoep/HgxyajXVV07RPa5/1l57S0
 WoaI9YmEXXj3au2bDpdc
 =v1l1
 -----END PGP SIGNATURE-----
 

spirv-opt: Handle id overflow in MergeReturnPass (#6340)

This CL adds error handling to the MergeReturnPass to gracefully handle
cases where the pass runs out of IDs.

The following functions were modified to return a boolean indicating
success or failure:
- AddNewPhiNodes
- AddReturnFlag
- AddReturnValue
- BranchToBlock
- CreatePhiNodesForInst
- ProcessStructuredBlock
- RecordReturned
- UpdatePhiNodes

The callers of these functions were updated to check the return value
and propagate the failure. This prevents the pass from crashing when it
runs out of IDs.