diff options
| author | aqjune <aqjune@gmail.com> | 2019-11-07 01:17:49 +0900 |
|---|---|---|
| committer | aqjune <aqjune@gmail.com> | 2019-11-12 10:49:00 +0900 |
| commit | e87d71668e10f51abe4b2f1f3c44591aca783750 (patch) | |
| tree | c33db0298cc2ef75a9c7fd30bf082f6e150c527a /llvm/include/llvm-c | |
| parent | c46b3a2abd38d6fecd389c97dfa7df54af77fdb9 (diff) | |
| download | bcm5719-llvm-e87d71668e10f51abe4b2f1f3c44591aca783750.tar.gz bcm5719-llvm-e87d71668e10f51abe4b2f1f3c44591aca783750.zip | |
[IR] Redefine Freeze instruction
Summary:
This patch redefines freeze instruction from being UnaryOperator to a subclass of UnaryInstruction.
ConstantExpr freeze is removed, as discussed in the previous review.
FreezeOperator is not added because there's no ConstantExpr freeze.
`freeze i8* null` test is added to `test/Bindings/llvm-c/freeze.ll` as well, because the null pointer-related bug in `tools/llvm-c/echo.cpp` is now fixed.
InstVisitor has visitFreeze now because freeze is not unaryop anymore.
Reviewers: whitequark, deadalnix, craig.topper, jdoerfert, lebedev.ri
Reviewed By: craig.topper, lebedev.ri
Subscribers: regehr, nlopes, mehdi_amini, hiraditya, steven_wu, dexonsmith, jfb, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69932
Diffstat (limited to 'llvm/include/llvm-c')
| -rw-r--r-- | llvm/include/llvm-c/Core.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/include/llvm-c/Core.h b/llvm/include/llvm-c/Core.h index 23e855148bb..83bf7077bcb 100644 --- a/llvm/include/llvm-c/Core.h +++ b/llvm/include/llvm-c/Core.h @@ -69,7 +69,6 @@ typedef enum { /* Standard Unary Operators */ LLVMFNeg = 66, - LLVMFreeze = 68, /* Standard Binary Operators */ LLVMAdd = 8, @@ -128,6 +127,7 @@ typedef enum { LLVMShuffleVector = 52, LLVMExtractValue = 53, LLVMInsertValue = 54, + LLVMFreeze = 68, /* Atomic operators */ LLVMFence = 55, @@ -1601,6 +1601,7 @@ LLVMTypeRef LLVMX86MMXType(void); macro(ExtractValueInst) \ macro(LoadInst) \ macro(VAArgInst) \ + macro(FreezeInst) \ macro(AtomicCmpXchgInst) \ macro(AtomicRMWInst) \ macro(FenceInst) @@ -3748,7 +3749,6 @@ LLVMValueRef LLVMBuildNUWNeg(LLVMBuilderRef B, LLVMValueRef V, const char *Name); LLVMValueRef LLVMBuildFNeg(LLVMBuilderRef, LLVMValueRef V, const char *Name); LLVMValueRef LLVMBuildNot(LLVMBuilderRef, LLVMValueRef V, const char *Name); -LLVMValueRef LLVMBuildFreeze(LLVMBuilderRef, LLVMValueRef V, const char *Name); /* Memory */ LLVMValueRef LLVMBuildMalloc(LLVMBuilderRef, LLVMTypeRef Ty, const char *Name); @@ -3909,6 +3909,8 @@ LLVMValueRef LLVMBuildExtractValue(LLVMBuilderRef, LLVMValueRef AggVal, LLVMValueRef LLVMBuildInsertValue(LLVMBuilderRef, LLVMValueRef AggVal, LLVMValueRef EltVal, unsigned Index, const char *Name); +LLVMValueRef LLVMBuildFreeze(LLVMBuilderRef, LLVMValueRef Val, + const char *Name); LLVMValueRef LLVMBuildIsNull(LLVMBuilderRef, LLVMValueRef Val, const char *Name); |

