Print disc/addrdisc optionally, and swap them in ops list.
We originally matched the llvm.ptrauth struct layout, but this is nicer because: - both are commonly 0/null, so we can omit them in the common case - other than qualifier usage, integer discriminator alone is more common than an address discriminator, so omitting the latter alone helps also. - key + integer discriminator looks like the bundle/intrinsics, which helps pattern matching when staring at IR. - the variable-length addrdisc GEP string hides the integer disc. This doesn't match the llvm.ptrauth struct, but that's relatively straightforward to macro-update. This doesn't match the C qualifier either, but there the address discriminator is only a boolean `1`, so it's hard to mix these up.
parent
48a946cc
Please register or sign in to comment