-
Notifications
You must be signed in to change notification settings - Fork 396
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rework implementations of BINARY_IDENTITY_OP, et al. #7166
Labels
Comments
I'll give this one a run and see it how it goes |
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Dec 5, 2023
This commit cleans up the BINARY_IDENTITY_OP and BIANRY_IDENTITY_OR_ZERO macros and replaces them with inline equivalents that use TR::DataTypes to signal which type to use for operation. Fixes: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Dec 8, 2023
This commit cleans up the BINARY_IDENTITY_OP and BIANRY_IDENTITY_OR_ZERO macros and replaces them with inline equivalents that use TR::DataTypes to signal which type to use for operation. Fixes: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Dec 10, 2023
This commit cleans up the BINARY_IDENTITY_OP and BIANRY_IDENTITY_OR_ZERO macros and replaces them with inline equivalents that use TR::DataTypes to signal which type to use for operation. Fixes: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Dec 11, 2023
This commit cleans up the BINARY_IDENTITY_OP and BIANRY_IDENTITY_OR_ZERO macros and replaces them with inline equivalents that use TR::DataTypes to signal which type to use for operation. Fixes: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Dec 11, 2023
This commit cleans up the BINARY_IDENTITY_OP and BIANRY_IDENTITY_OR_ZERO macros and replaces them with inline equivalents that use TR::DataTypes to signal which type to use for operation. Fixes: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Dec 11, 2023
This commit cleans up the BINARY_IDENTITY_OP and BIANRY_IDENTITY_OR_ZERO macros and replaces them with inline equivalents that use TR::DataTypes to signal which type to use for operation. Fixes: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Dec 11, 2023
This commit cleans up the BINARY_IDENTITY_OP and BIANRY_IDENTITY_OR_ZERO macros and replaces them with inline equivalents that use TR::DataTypes to signal which type to use for operation. Fixes: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Dec 11, 2023
This commit cleans up the BINARY_IDENTITY_OP and BIANRY_IDENTITY_OR_ZERO macros and replaces them with inline equivalents that use TR::DataTypes to signal which type to use for operation. Fixes: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Dec 11, 2023
This commit cleans up the BINARY_IDENTITY_OP and BIANRY_IDENTITY_OR_ZERO macros and replaces them with inline equivalents that use TR::DataTypes to signal which type to use for operation. Fixes: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Dec 11, 2023
This commit cleans up the BINARY_IDENTITY_OP and BIANRY_IDENTITY_OR_ZERO macros and replaces them with inline equivalents that use TR::DataTypes to signal which type to use for operation. Fixes: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Dec 12, 2023
This commit cleans up the BINARY_IDENTITY_OP and BIANRY_IDENTITY_OR_ZERO macros and replaces them with inline equivalents that use TR::DataTypes to signal which type to use for operation. Fixes: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Dec 19, 2023
This commit cleans up the BINARY_IDENTITY_OP and BIANRY_IDENTITY_OR_ZERO macros and replaces them with inline equivalents that use TR::DataTypes to signal which type to use for operation. Fixes: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Feb 5, 2024
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: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Feb 5, 2024
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: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Feb 14, 2024
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: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Feb 26, 2024
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: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Mar 5, 2024
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: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Mar 6, 2024
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: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Mar 20, 2024
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: eclipse#7166 Signed-off-by: James You <[email protected]>
jmesyou
added a commit
to jmesyou/omr
that referenced
this issue
Mar 21, 2024
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: eclipse#7166 Signed-off-by: James You <[email protected]>
hzongaro
pushed a commit
to hzongaro/omr
that referenced
this issue
Mar 26, 2024
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: eclipse#7166 Signed-off-by: James You <[email protected]>
Fixed by pull request #7195 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The
BINARY_IDENTITY_OP
,BINARY_IDENTITY_OR_ZERO_OP
andSIMPLIFY_BRANCH_ARITHMETIC
macros inOMRSimplifierHandlers.cpp
andOMRSimplifierHelpers.hpp
are somewhat complicated, rely on the naming of variables from the context in which they are referenced, and in two cases, cause an early return from the methods in which they are used.Reworking them to avoid using macros would make them easier to understand and maintain.
The text was updated successfully, but these errors were encountered: