tree 40059e9d5c6871de8cc9aac14d55db9eb1119a8f
parent 7482655a6b57864cd8b94949a6eb0b2fa5621f4d
author Twice <twice@apache.org> 1774226873 +0800
committer GitHub <noreply@github.com> 1774226873 +0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJpwI25CRC1aQ7uu5UhlAAApacQAIY66VTD99X9NcFwK5y+5lwu
 85kBoUV8onAiOWRbKrjaNOM1OXpMpWH44Muz4w1rj1vwUhVjLjHJu1yFKSvME70Z
 f4Fr4/CVwqQCuGD9w8xTLAKotsispJHJJeSNx6ytDF+3CKw7v/P8kxWu9F2V2RCN
 dNwaRafkBFupp2g8ahQd0oNk0KE+Z1fSYBeVon4/otAK+NfZSW8lxjtp5VaCAU8X
 nIhUdiZJjeXmjAkC6mD29iN7yASOfAOC9JRFkQL/VGDpy2AS4OCPUDH8FTUdfbe/
 JmVeCNbfZB3qe+vT3r/jrShLYE6xKt2CUXvBlNn2tVAyTQimYgMv44cDEk+uDHiT
 0/b5qYJp0t9yfWyZz46/Zx7kLNv1aEvUFXZbzvDbNLtSZ/iRfC23VjHvrF+g6CH0
 CVygjGuq8B41bNlD0VL0WkVPyvKcs0xcgGhHkuzhvu+DgbjT+OvVglIl8RzjtEk1
 xOpROiXu54rTp8Y2W4gqkNZcABLALyBWPMDj9rvugX9TzhyBYRQ6AQzuBrIf4z/t
 /7chJTP4jniNTL8B9Ue4lH7ZKtcB7sV1PFNPHaOYHj0r2ikbIDkAplAoAF/c964k
 MVotF2CWNO0hvqEbWseFtQ8+G1rtp15ImCa2R28z0kwpxkSjHA23oNeGp7LyKFCY
 WT2qLYsojxT7C3eJFBDX
 =2ayN
 -----END PGP SIGNATURE-----
 

[MLIR][IRDL][Python] Fix error while composing `irdl.any_of` and `irdl.base` (#187914)

Previously, while users compose `irdl.any_of` and `irdl.base`, e.g.
```mlir
module {
  irdl.dialect @ext_attr_in_op {
    irdl.operation @op_with_attr {
      %0 = irdl.base "#builtin.integer" 
      %1 = irdl.base "#builtin.string" 
      %2 = irdl.any_of(%0, %1) 
      irdl.attributes {"a" = %2}
    }
  }
}
```

The program will crash due to `llvm_unreachable("unknown IRDL
constraint")`.

This PR implements `getBases(..)` for `irdl::BaseOp` to make this work.
This make fields like `attr: IntegerAttr | StringAttr` work in
Python-defined dialects, which led to a crash previously.