diff options
author | Nikita Popov <npopov@redhat.com> | 2022-07-08 16:54:49 +0200 |
---|---|---|
committer | Nikita Popov <npopov@redhat.com> | 2022-07-12 09:40:49 +0200 |
commit | 4bb7b6fae3be02031878b2aa3be584c6627ad8ec (patch) | |
tree | b816a2bb3d2c7de9941c98392a399697aec7374f /llvm/lib/IR/Constants.cpp | |
parent | 3c4468e67f0d3ee4eb00f0485fd5292e977abc4a (diff) | |
download | llvm-4bb7b6fae3be02031878b2aa3be584c6627ad8ec.zip llvm-4bb7b6fae3be02031878b2aa3be584c6627ad8ec.tar.gz llvm-4bb7b6fae3be02031878b2aa3be584c6627ad8ec.tar.bz2 |
[IR] Remove support for float binop constant expressions
As part of https://discourse.llvm.org/t/rfc-remove-most-constant-expressions/63179,
this removes support for the floating-point binop constant expressions
fadd, fsub, fmul, fdiv and frem.
As part of this change, the C APIs LLVMConstFAdd, LLVMConstFSub,
LLVMConstFMul, LLVMConstFDiv and LLVMConstFRem are removed.
The LLVMBuild APIs should be used instead.
Differential Revision: https://reviews.llvm.org/D129478
Diffstat (limited to 'llvm/lib/IR/Constants.cpp')
-rw-r--r-- | llvm/lib/IR/Constants.cpp | 30 |
1 files changed, 5 insertions, 25 deletions
diff --git a/llvm/lib/IR/Constants.cpp b/llvm/lib/IR/Constants.cpp index 9eefd01..f9800cc 100644 --- a/llvm/lib/IR/Constants.cpp +++ b/llvm/lib/IR/Constants.cpp @@ -2355,6 +2355,11 @@ bool ConstantExpr::isSupportedBinOp(unsigned Opcode) { case Instruction::SDiv: case Instruction::URem: case Instruction::SRem: + case Instruction::FAdd: + case Instruction::FSub: + case Instruction::FMul: + case Instruction::FDiv: + case Instruction::FRem: return false; case Instruction::Add: case Instruction::Sub: @@ -2365,11 +2370,6 @@ bool ConstantExpr::isSupportedBinOp(unsigned Opcode) { case Instruction::And: case Instruction::Or: case Instruction::Xor: - case Instruction::FAdd: - case Instruction::FSub: - case Instruction::FMul: - case Instruction::FDiv: - case Instruction::FRem: return true; default: llvm_unreachable("Argument must be binop opcode"); @@ -2668,10 +2668,6 @@ Constant *ConstantExpr::getAdd(Constant *C1, Constant *C2, return get(Instruction::Add, C1, C2, Flags); } -Constant *ConstantExpr::getFAdd(Constant *C1, Constant *C2) { - return get(Instruction::FAdd, C1, C2); -} - Constant *ConstantExpr::getSub(Constant *C1, Constant *C2, bool HasNUW, bool HasNSW) { unsigned Flags = (HasNUW ? OverflowingBinaryOperator::NoUnsignedWrap : 0) | @@ -2679,10 +2675,6 @@ Constant *ConstantExpr::getSub(Constant *C1, Constant *C2, return get(Instruction::Sub, C1, C2, Flags); } -Constant *ConstantExpr::getFSub(Constant *C1, Constant *C2) { - return get(Instruction::FSub, C1, C2); -} - Constant *ConstantExpr::getMul(Constant *C1, Constant *C2, bool HasNUW, bool HasNSW) { unsigned Flags = (HasNUW ? OverflowingBinaryOperator::NoUnsignedWrap : 0) | @@ -2690,18 +2682,6 @@ Constant *ConstantExpr::getMul(Constant *C1, Constant *C2, return get(Instruction::Mul, C1, C2, Flags); } -Constant *ConstantExpr::getFMul(Constant *C1, Constant *C2) { - return get(Instruction::FMul, C1, C2); -} - -Constant *ConstantExpr::getFDiv(Constant *C1, Constant *C2) { - return get(Instruction::FDiv, C1, C2); -} - -Constant *ConstantExpr::getFRem(Constant *C1, Constant *C2) { - return get(Instruction::FRem, C1, C2); -} - Constant *ConstantExpr::getAnd(Constant *C1, Constant *C2) { return get(Instruction::And, C1, C2); } |