parse freeze
MODIFY
llvm_util/llvm2alive.cpp
llvm_util/llvm2alive.cpp
@@ -167,6 +167,11 @@ public:
RETURN_IDENTIFIER(make_unique<ConversionOp>(*ty, value_name(i), *val, op));
}
+ RetTy visitFreezeInst(llvm::FreezeInst &i) {
+ PARSE_UNOP();
+ RETURN_IDENTIFIER(make_unique<Freeze>(*ty, value_name(i), *val));
+ }
+
RetTy visitCallInst(llvm::CallInst &i) {
auto [call_val, known] = known_call(i, TLI, *BB);
if (call_val)

ADD
tests/alive-tv/freeze.src.ll
+define i16 @test(i1, i16) {
+ %v = select i1 %0, i16 %1, i16 undef
+ ret i16 %v
+}

ADD
tests/alive-tv/freeze.tgt.ll
+define i16 @test(i1, i16) {
+ %r = freeze i16 %1
+ ret i16 %r
+}

parse freeze (#174)