[Beignet] [PATCH V3] backend: improve add zero pattern
rander.wang
rander.wang at intel.com
Fri Jul 7 02:09:32 UTC 2017
remove the negation check for adding zero.
it also can be applied this optimization
V2: refine the function name for zeroAdd
V3: refine the build
Signed-off-by: rander.wang <rander.wang at intel.com>
---
backend/src/backend/gen_insn_selection_optimize.cpp | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/backend/src/backend/gen_insn_selection_optimize.cpp b/backend/src/backend/gen_insn_selection_optimize.cpp
index af5ecc2..fafb6be 100644
--- a/backend/src/backend/gen_insn_selection_optimize.cpp
+++ b/backend/src/backend/gen_insn_selection_optimize.cpp
@@ -101,7 +101,7 @@ namespace gbe
void doReplacement(ReplaceInfo* info);
bool CanBeReplaced(const ReplaceInfo* info, const SelectionInstruction& insn, const GenRegister& var);
void cleanReplaceInfoMap();
- void doNegAddOptimization(SelectionInstruction &insn);
+ void doZeroAddedOptimization(SelectionInstruction &insn);
SelectionBlock &bb;
const ir::Liveness::LiveOut& liveout;
@@ -289,7 +289,7 @@ namespace gbe
if (insn.opcode == SEL_OP_MOV)
addToReplaceInfoMap(insn);
- doNegAddOptimization(insn);
+ doZeroAddedOptimization(insn);
}
cleanReplaceInfoMap();
}
@@ -301,12 +301,12 @@ namespace gbe
Also it can be used for the same like instruction sequence.
Do it just like a: mov b, -b, so it is a Mov operation like LocalCopyPropagation
*/
- void SelBasicBlockOptimizer::doNegAddOptimization(SelectionInstruction &insn) {
+ void SelBasicBlockOptimizer::doZeroAddedOptimization(SelectionInstruction &insn) {
if (insn.opcode == SEL_OP_ADD) {
GenRegister src0 = insn.src(0);
GenRegister src1 = insn.src(1);
- if ((src0.negation && src1.file == GEN_IMMEDIATE_VALUE && src1.value.f == 0.0f) ||
- (src1.negation && src0.file == GEN_IMMEDIATE_VALUE && src0.value.f == 0.0f))
+ if ((src1.file == GEN_IMMEDIATE_VALUE && src1.value.f == 0.0f) ||
+ (src0.file == GEN_IMMEDIATE_VALUE && src0.value.f == 0.0f))
addToReplaceInfoMap(insn);
}
}
--
2.7.4
More information about the Beignet
mailing list