Skip to content

Commit 4afefef

Browse files
committed
Always-inline Kernel#frozen?
* jt -u jvm-ce/native benchmark -e 'benchmark { self.frozen? }' -- --engine.Compilation=false JVM CE: 2963452 -> 3555902 Native CE: 1915893 -> 2501140
1 parent 9a6c4a4 commit 4afefef

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

src/main/java/org/truffleruby/core/kernel/KernelNodes.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -873,16 +873,14 @@ protected Object freezeDynamicObject(Object self,
873873

874874
}
875875

876-
@ReportPolymorphism
877-
@CoreMethod(names = "frozen?")
878-
public abstract static class KernelFrozenNode extends CoreMethodArrayArgumentsNode {
879-
876+
@GenerateUncached
877+
@CoreMethod(names = "frozen?", alwaysInlined = true)
878+
public abstract static class KernelFrozenNode extends AlwaysInlinedMethodNode {
880879
@Specialization(limit = "getRubyLibraryCacheLimit()")
881-
protected boolean isFrozen(Object self,
880+
protected boolean isFrozen(Frame callerFrame, Object self, Object[] rubyArgs, RootCallTarget target,
882881
@CachedLibrary("self") RubyLibrary rubyLibrary) {
883882
return rubyLibrary.isFrozen(self);
884883
}
885-
886884
}
887885

888886
/** Keep consistent with {@link org.truffleruby.core.hash.HashingNodes.ToHashByHashCode} */

0 commit comments

Comments
 (0)