Add a predicate to MCInstDesc that allows tools to determine whether an
instruction authenticates a pointer. This can be used by diagnostic
tools to hint at pointer authentication failures.
Details
Diff Detail
Event Timeline
IIUC, I think "isAuthenticating" would be a more accurate description/name than "isAuthenticated".
In that the instruction on which this property is set does authenticate a pointer, rather than the instruction itself having been authenticated (whatever that may mean) before.
Does that seem fair?
This looks like it covers the right set of instructions, but I don't really know enough about backends to review, sorry.
Hi! Does this cover pre v8.3 pointer authenticating instructions (AUTIASP/AUTIBSP) too?
Seems reasonable. This is an interesting use of MCID flags, in that llvm itself doesn't need it, but I'm all for better disassembler support!
IIUC, I think "isAuthenticating" would be a more accurate description/name than "isAuthenticated".
FWIW, I actually find "isAuthenticated" more idiomatic, but I'm not enough of a native speaker to justify it ;)
Hi! Does this cover pre v8.3 pointer authenticating instructions (AUTIASP/AUTIBSP) too?
I don't think it makes sense to include AUT* on v8.3a, but it does on v8.6a, and shouldn't hurt elsewhere, so I'm fine with having them.
llvm/include/llvm/Target/Target.td | ||
---|---|---|
533 | nit: one too many spaces between ';' and '//' | |
llvm/lib/Target/AArch64/AArch64InstrInfo.td | ||
822 | I suggest wrapping the AUT defs with let isAuthenticating = 1, this doesn't need a class. |
nit: one too many spaces between ';' and '//'