Skip to content

Changes

Summary

  1. Refactor Binary Identity Simplification Macro (commit: 5030f48) (details)
Commit 5030f482a369b992d9e17da43a91f59ed5f6c76e by James You
Refactor Binary Identity Simplification Macro

This commit cleans up the BINARY_IDENTITY_OP and
BIANRY_IDENTITY_OR_ZERO macros and replaces them
with inline equivalents by implementing a struct to replace template
instantions of the functions tryAndSimplifyBinaryOp*.

This change limits the number of template instantiations
potential call sites have to create as well as abstracts
some captured variables inside the struct to minimize
the number of arguments passed to actual calls.

A closure is emulated by the struct.
Through escape analysis, scalar replacement and inlining,
the overhead of creating this struct should be minimal
on -O3

Related: #7166

Signed-off-by: James You <james.you@protonmail.com>
(commit: 5030f48)
The file was modified compiler/optimizer/OMRSimplifierHandlers.cpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHelpers.hpp (diff)