Skip to content

Commit

Permalink
Remove unused exp family IL opcodes
Browse files Browse the repository at this point in the history
There are no known producers or consumers of these opcodes and no
functional implementation is available either.

* `TR::dexp`
* `TR::fexp`
* `TR::bexp`
* `TR::sexp`
* `TR::cexp`
* `TR::buexp`
* `TR::iuexp`
* `TR::luexp`
* `TR::fuexp`
* `TR::duexp`
* `TR::iexp`
* `TR::lexp`

Issue: #5914

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
  • Loading branch information
0xdaryl committed Apr 26, 2021
1 parent e0605ab commit 52b1c65
Show file tree
Hide file tree
Showing 22 changed files with 9 additions and 687 deletions.
12 changes: 0 additions & 12 deletions compiler/aarch64/codegen/OMRTreeEvaluator.hpp
Expand Up @@ -676,20 +676,8 @@ class OMR_EXTENSIBLE TreeEvaluator: public OMR::TreeEvaluator
static TR::Register *isatomicorEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *iiatomicorEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *ilatomicorEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *dexpEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *branchEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *igotoEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *bexpEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *buexpEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *sexpEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *cexpEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *iexpEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *iuexpEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *lexpEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *luexpEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *fexpEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *fuexpEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *duexpEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *ixfrsEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *lxfrsEvaluator(TR::Node *node, TR::CodeGenerator *cg);
static TR::Register *fxfrsEvaluator(TR::Node *node, TR::CodeGenerator *cg);
Expand Down
12 changes: 0 additions & 12 deletions compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp
Expand Up @@ -653,20 +653,8 @@
#define _isatomicorEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _iiatomicorEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _ilatomicorEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _dexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _branchEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _igotoEvaluator TR::TreeEvaluator::igotoEvaluator
#define _bexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _buexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _sexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _cexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _iexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _iuexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _lexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _luexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _fexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _fuexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _duexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _ixfrsEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _lxfrsEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _fxfrsEvaluator TR::TreeEvaluator::unImpOpEvaluator
Expand Down
12 changes: 0 additions & 12 deletions compiler/arm/codegen/OMRTreeEvaluatorTable.hpp
Expand Up @@ -654,20 +654,8 @@
#define _isatomicorEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _iiatomicorEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _ilatomicorEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _dexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _branchEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _igotoEvaluator TR::TreeEvaluator::igotoEvaluator
#define _bexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _buexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _sexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _cexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _iexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _iuexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _lexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _luexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _fexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _fuexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _duexpEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _ixfrsEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _lxfrsEvaluator TR::TreeEvaluator::unImpOpEvaluator
#define _fxfrsEvaluator TR::TreeEvaluator::unImpOpEvaluator
Expand Down
192 changes: 0 additions & 192 deletions compiler/il/OMROpcodes.enum
Expand Up @@ -10083,22 +10083,6 @@ OPCODE_MACRO(\
/* .ifCompareOpCode = */ TR::BadILOp, \
/* .description = */ \
)
OPCODE_MACRO(\
/* .opcode = */ dexp, \
/* .name = */ "dexp", \
/* .properties1 = */ 0, \
/* .properties2 = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
/* .properties3 = */ ILProp3::SignedExponentiation, \
/* .properties4 = */ 0, \
/* .dataType = */ TR::Double, \
/* .typeProperties = */ ILTypeProp::Size_8 | ILTypeProp::Floating_Point, \
/* .childProperties = */ TWO_SAME_CHILD(TR::Double), \
/* .swapChildrenOpCode = */ TR::BadILOp, \
/* .reverseBranchOpCode = */ TR::BadILOp, \
/* .booleanCompareOpCode = */ TR::BadILOp, \
/* .ifCompareOpCode = */ TR::BadILOp, \
/* .description = double exponent */ \
)
OPCODE_MACRO(\
/* .opcode = */ branch, \
/* .name = */ "branch", \
Expand Down Expand Up @@ -10131,182 +10115,6 @@ OPCODE_MACRO(\
/* .ifCompareOpCode = */ TR::BadILOp, \
/* .description = indirect goto, branches to the address specified by a child */ \
)
OPCODE_MACRO(\
/* .opcode = */ bexp, \
/* .name = */ "bexp", \
/* .properties1 = */ 0, \
/* .properties2 = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
/* .properties3 = */ ILProp3::SignedExponentiation, \
/* .properties4 = */ 0, \
/* .dataType = */ TR::Int8, \
/* .typeProperties = */ ILTypeProp::Size_1 | ILTypeProp::Integer, \
/* .childProperties = */ TWO_SAME_CHILD(TR::Int8), \
/* .swapChildrenOpCode = */ TR::BadILOp, \
/* .reverseBranchOpCode = */ TR::BadILOp, \
/* .booleanCompareOpCode = */ TR::BadILOp, \
/* .ifCompareOpCode = */ TR::BadILOp, \
/* .description = signed byte exponent (raise signed byte to power) */ \
)
OPCODE_MACRO(\
/* .opcode = */ buexp, \
/* .name = */ "buexp", \
/* .properties1 = */ 0, \
/* .properties2 = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
/* .properties3 = */ ILProp3::UnsignedExponentiation, \
/* .properties4 = */ 0, \
/* .dataType = */ TR::Int8, \
/* .typeProperties = */ ILTypeProp::Size_1 | ILTypeProp::Unsigned, \
/* .childProperties = */ TWO_SAME_CHILD(TR::Int8), \
/* .swapChildrenOpCode = */ TR::BadILOp, \
/* .reverseBranchOpCode = */ TR::BadILOp, \
/* .booleanCompareOpCode = */ TR::BadILOp, \
/* .ifCompareOpCode = */ TR::BadILOp, \
/* .description = unsigned byte exponent */ \
)
OPCODE_MACRO(\
/* .opcode = */ sexp, \
/* .name = */ "sexp", \
/* .properties1 = */ 0, \
/* .properties2 = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
/* .properties3 = */ ILProp3::SignedExponentiation, \
/* .properties4 = */ 0, \
/* .dataType = */ TR::Int16, \
/* .typeProperties = */ ILTypeProp::Size_2 | ILTypeProp::Integer, \
/* .childProperties = */ TWO_SAME_CHILD(TR::Int16), \
/* .swapChildrenOpCode = */ TR::BadILOp, \
/* .reverseBranchOpCode = */ TR::BadILOp, \
/* .booleanCompareOpCode = */ TR::BadILOp, \
/* .ifCompareOpCode = */ TR::BadILOp, \
/* .description = short exponent */ \
)
OPCODE_MACRO(\
/* .opcode = */ cexp, \
/* .name = */ "cexp", \
/* .properties1 = */ 0, \
/* .properties2 = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
/* .properties3 = */ ILProp3::UnsignedExponentiation, \
/* .properties4 = */ 0, \
/* .dataType = */ TR::Int16, \
/* .typeProperties = */ ILTypeProp::Size_2 | ILTypeProp::Unsigned, \
/* .childProperties = */ TWO_SAME_CHILD(TR::Int16), \
/* .swapChildrenOpCode = */ TR::BadILOp, \
/* .reverseBranchOpCode = */ TR::BadILOp, \
/* .booleanCompareOpCode = */ TR::BadILOp, \
/* .ifCompareOpCode = */ TR::BadILOp, \
/* .description = unsigned short exponent */ \
)
OPCODE_MACRO(\
/* .opcode = */ iexp, \
/* .name = */ "iexp", \
/* .properties1 = */ 0, \
/* .properties2 = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
/* .properties3 = */ ILProp3::SignedExponentiation, \
/* .properties4 = */ 0, \
/* .dataType = */ TR::Int32, \
/* .typeProperties = */ ILTypeProp::Size_4 | ILTypeProp::Integer, \
/* .childProperties = */ TWO_SAME_CHILD(TR::Int32), \
/* .swapChildrenOpCode = */ TR::BadILOp, \
/* .reverseBranchOpCode = */ TR::BadILOp, \
/* .booleanCompareOpCode = */ TR::BadILOp, \
/* .ifCompareOpCode = */ TR::BadILOp, \
/* .description = integer exponent */ \
)
OPCODE_MACRO(\
/* .opcode = */ iuexp, \
/* .name = */ "iuexp", \
/* .properties1 = */ 0, \
/* .properties2 = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
/* .properties3 = */ ILProp3::UnsignedExponentiation, \
/* .properties4 = */ 0, \
/* .dataType = */ TR::Int32, \
/* .typeProperties = */ ILTypeProp::Size_4 | ILTypeProp::Unsigned, \
/* .childProperties = */ TWO_SAME_CHILD(TR::Int32), \
/* .swapChildrenOpCode = */ TR::BadILOp, \
/* .reverseBranchOpCode = */ TR::BadILOp, \
/* .booleanCompareOpCode = */ TR::BadILOp, \
/* .ifCompareOpCode = */ TR::BadILOp, \
/* .description = unsigned integer exponent */ \
)
OPCODE_MACRO(\
/* .opcode = */ lexp, \
/* .name = */ "lexp", \
/* .properties1 = */ 0, \
/* .properties2 = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
/* .properties3 = */ ILProp3::SignedExponentiation, \
/* .properties4 = */ 0, \
/* .dataType = */ TR::Int64, \
/* .typeProperties = */ ILTypeProp::Size_8 | ILTypeProp::Integer, \
/* .childProperties = */ TWO_SAME_CHILD(TR::Int64), \
/* .swapChildrenOpCode = */ TR::BadILOp, \
/* .reverseBranchOpCode = */ TR::BadILOp, \
/* .booleanCompareOpCode = */ TR::BadILOp, \
/* .ifCompareOpCode = */ TR::BadILOp, \
/* .description = long exponent */ \
)
OPCODE_MACRO(\
/* .opcode = */ luexp, \
/* .name = */ "luexp", \
/* .properties1 = */ 0, \
/* .properties2 = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
/* .properties3 = */ ILProp3::UnsignedExponentiation, \
/* .properties4 = */ 0, \
/* .dataType = */ TR::Int64, \
/* .typeProperties = */ ILTypeProp::Size_8 | ILTypeProp::Unsigned, \
/* .childProperties = */ TWO_SAME_CHILD(TR::Int64), \
/* .swapChildrenOpCode = */ TR::BadILOp, \
/* .reverseBranchOpCode = */ TR::BadILOp, \
/* .booleanCompareOpCode = */ TR::BadILOp, \
/* .ifCompareOpCode = */ TR::BadILOp, \
/* .description = unsigned long exponent */ \
)
OPCODE_MACRO(\
/* .opcode = */ fexp, \
/* .name = */ "fexp", \
/* .properties1 = */ 0, \
/* .properties2 = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
/* .properties3 = */ ILProp3::SignedExponentiation, \
/* .properties4 = */ 0, \
/* .dataType = */ TR::Float, \
/* .typeProperties = */ ILTypeProp::Size_4 | ILTypeProp::Floating_Point, \
/* .childProperties = */ TWO_SAME_CHILD(TR::Float), \
/* .swapChildrenOpCode = */ TR::BadILOp, \
/* .reverseBranchOpCode = */ TR::BadILOp, \
/* .booleanCompareOpCode = */ TR::BadILOp, \
/* .ifCompareOpCode = */ TR::BadILOp, \
/* .description = float exponent */ \
)
OPCODE_MACRO(\
/* .opcode = */ fuexp, \
/* .name = */ "fuexp", \
/* .properties1 = */ 0, \
/* .properties2 = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
/* .properties3 = */ ILProp3::UnsignedExponentiation, \
/* .properties4 = */ 0, \
/* .dataType = */ TR::Float, \
/* .typeProperties = */ ILTypeProp::Size_4 | ILTypeProp::Floating_Point, \
/* .childProperties = */ TWO_CHILD(TR::Float, TR::Int32), \
/* .swapChildrenOpCode = */ TR::BadILOp, \
/* .reverseBranchOpCode = */ TR::BadILOp, \
/* .booleanCompareOpCode = */ TR::BadILOp, \
/* .ifCompareOpCode = */ TR::BadILOp, \
/* .description = float base to unsigned integral exponent */ \
)
OPCODE_MACRO(\
/* .opcode = */ duexp, \
/* .name = */ "duexp", \
/* .properties1 = */ 0, \
/* .properties2 = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
/* .properties3 = */ ILProp3::UnsignedExponentiation, \
/* .properties4 = */ 0, \
/* .dataType = */ TR::Double, \
/* .typeProperties = */ ILTypeProp::Size_8 | ILTypeProp::Floating_Point, \
/* .childProperties = */ TWO_CHILD(TR::Double, TR::Int32), \
/* .swapChildrenOpCode = */ TR::BadILOp, \
/* .reverseBranchOpCode = */ TR::BadILOp, \
/* .booleanCompareOpCode = */ TR::BadILOp, \
/* .ifCompareOpCode = */ TR::BadILOp, \
/* .description = double base to unsigned integral exponent */ \
)
OPCODE_MACRO(\
/* .opcode = */ ixfrs, \
/* .name = */ "ixfrs", \
Expand Down
6 changes: 0 additions & 6 deletions compiler/optimizer/OMRSimplifierHandlers.cpp
Expand Up @@ -16584,12 +16584,6 @@ TR::Node *d2cSimplifier(TR::Node * node, TR::Block * block, TR::Simplifier * s)
}


TR::Node *expSimplifier(TR::Node *node,TR::Block *block,TR::Simplifier *s)
{
simplifyChildren(node, block, s);
return replaceExpWithMult(node,node->getFirstChild(),node->getSecondChild(),block,s);
}

//---------------------------------------------------------------------
// Type coersion operators
//
Expand Down
3 changes: 1 addition & 2 deletions compiler/optimizer/OMRSimplifierHandlers.hpp
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2000, 2020 IBM Corp. and others
* Copyright (c) 2000, 2021 IBM Corp. and others
*
* This program and the accompanying materials are made available under
* the terms of the Eclipse Public License 2.0 which accompanies this
Expand Down Expand Up @@ -217,7 +217,6 @@ TR::Node * imulhSimplifier(TR::Node * node, TR::Block *block, TR::Simplifier * s
TR::Node * lmulhSimplifier(TR::Node * node, TR::Block * block, TR::Simplifier * s);
TR::Node * f2cSimplifier(TR::Node * node, TR::Block * block, TR::Simplifier * s);
TR::Node * d2cSimplifier(TR::Node * node, TR::Block * block, TR::Simplifier * s);
TR::Node * expSimplifier(TR::Node *node,TR::Block *block,TR::Simplifier *s);
TR::Node * ibits2fSimplifier(TR::Node * node, TR::Block * block, TR::Simplifier * s);
TR::Node * lbits2dSimplifier(TR::Node * node, TR::Block * block, TR::Simplifier * s);
TR::Node * fbits2iSimplifier(TR::Node * node, TR::Block * block, TR::Simplifier * s);
Expand Down

0 comments on commit 52b1c65

Please sign in to comment.