[llvm] [SandboxIR] Implement BitCastInst (PR #101227)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 30 14:50:40 PDT 2024
================
@@ -1386,6 +1390,26 @@ class PtrToIntInst final : public CastInst {
#endif // NDEBUG
};
+class BitCastInst : public CastInst {
+public:
+ static Value *create(Value *Src, Type *DestTy, BBIterator WhereIt,
+ BasicBlock *WhereBB, Context &Ctx,
+ const Twine &Name = "");
+ static Value *create(Value *Src, Type *DestTy, Instruction *InsertBefore,
+ Context &Ctx, const Twine &Name = "");
+ static Value *create(Value *Src, Type *DestTy, BasicBlock *InsertAtEnd,
+ Context &Ctx, const Twine &Name = "");
+
+ static bool classof(const Value *From) {
+ return isa<Instruction>(From) &&
----------------
vporpo wrote:
It's not, but `From` could be in a multi-Instruction. And it is theoretically possible to have two separate multi-instructions that contain `llvm::BitCastInst`s as their `Val` values. Which is why I think that using `From->Val`'s class is not the right approach. It is safer to get the SandboxIR instruction that points to `From->Val` and get it's opcode.
https://github.com/llvm/llvm-project/pull/101227
More information about the llvm-commits
mailing list