Skip to content

Commit dfb4a96

Browse files
committed
Inline caching for Encoding#{ascii_compatible?,dummy?} does not seem useful
* It's just two field reads.
1 parent 9500357 commit dfb4a96

File tree

2 files changed

+4
-39
lines changed

2 files changed

+4
-39
lines changed

src/main/java/org/truffleruby/core/encoding/EncodingNodes.java

Lines changed: 4 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -67,20 +67,8 @@ public abstract class EncodingNodes {
6767

6868
@CoreMethod(names = "ascii_compatible?")
6969
public abstract static class AsciiCompatibleNode extends CoreMethodArrayArgumentsNode {
70-
71-
@Specialization(guards = "encoding == cachedEncoding", limit = "getIdentityCacheLimit()")
72-
protected boolean isAsciiCompatibleCached(RubyEncoding encoding,
73-
@Cached("encoding") RubyEncoding cachedEncoding,
74-
@Cached("isAsciiCompatible(cachedEncoding)") boolean isAsciiCompatible) {
75-
return isAsciiCompatible;
76-
}
77-
78-
@Specialization(replaces = "isAsciiCompatibleCached")
79-
protected boolean isAsciiCompatibleUncached(RubyEncoding encoding) {
80-
return isAsciiCompatible(encoding);
81-
}
82-
83-
protected static boolean isAsciiCompatible(RubyEncoding encoding) {
70+
@Specialization
71+
protected boolean isAsciiCompatible(RubyEncoding encoding) {
8472
return encoding.encoding.isAsciiCompatible();
8573
}
8674
}
@@ -432,29 +420,18 @@ protected ImmutableRubyString localeCharacterMap(
432420

433421
@CoreMethod(names = "dummy?")
434422
public abstract static class DummyNode extends CoreMethodArrayArgumentsNode {
435-
436-
@Specialization(guards = "encoding == cachedEncoding", limit = "getIdentityCacheLimit()")
437-
protected boolean isDummyCached(RubyEncoding encoding,
438-
@Cached("encoding") RubyEncoding cachedEncoding,
439-
@Cached("isDummyUncached(cachedEncoding)") boolean isDummy) {
440-
return isDummy;
441-
}
442-
443-
@Specialization(replaces = "isDummyCached")
444-
protected boolean isDummyUncached(RubyEncoding encoding) {
423+
@Specialization
424+
protected boolean isDummy(RubyEncoding encoding) {
445425
return encoding.encoding.isDummy();
446426
}
447-
448427
}
449428

450429
@CoreMethod(names = { "name", "to_s" })
451430
public abstract static class ToSNode extends CoreMethodArrayArgumentsNode {
452-
453431
@Specialization
454432
protected ImmutableRubyString toS(RubyEncoding encoding) {
455433
return encoding.name;
456434
}
457-
458435
}
459436

460437
@CoreMethod(names = { "__allocate__", "__layout_allocate__" }, constructor = true, visibility = Visibility.PRIVATE)
@@ -491,12 +468,10 @@ protected Object eachAlias(RubyProc block) {
491468

492469
@Primitive(name = "encoding_is_unicode")
493470
public abstract static class IsUnicodeNode extends PrimitiveArrayArgumentsNode {
494-
495471
@Specialization
496472
protected boolean isUnicode(RubyEncoding encoding) {
497473
return encoding.encoding.isUnicode();
498474
}
499-
500475
}
501476

502477
@Primitive(name = "get_actual_encoding")
@@ -756,22 +731,18 @@ private RubyEncoding createDummy(String name) {
756731

757732
@Primitive(name = "encoding_get_encoding_by_index", lowerFixnum = 0)
758733
public static abstract class GetEncodingObjectByIndexNode extends PrimitiveArrayArgumentsNode {
759-
760734
@Specialization
761735
protected RubyEncoding getEncoding(int index) {
762736
return getContext().getEncodingManager().getRubyEncoding(index);
763737
}
764-
765738
}
766739

767740
@Primitive(name = "encoding_get_encoding_index")
768741
public static abstract class GetEncodingIndexNode extends PrimitiveArrayArgumentsNode {
769-
770742
@Specialization
771743
protected int getIndex(RubyEncoding encoding) {
772744
return encoding.encoding.getIndex();
773745
}
774-
775746
}
776747

777748
public static abstract class CheckRopeEncodingNode extends RubyContextNode {

test/truffle/compiler/pe/core/encoding_pe.rb

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,6 @@
66
# GNU General Public License version 2, or
77
# GNU Lesser General Public License version 2.1.
88

9-
example "Encoding::US_ASCII.ascii_compatible?", true
10-
example "Encoding::UTF_16BE.ascii_compatible?", false
11-
12-
example "Encoding::ISO_2022_JP.dummy?", true
13-
example "Encoding::UTF_8.dummy?", false
14-
159
example "Encoding.compatible?('abc', 'def')", Encoding::UTF_8
1610
example "Encoding.compatible?(Encoding::UTF_8, Encoding::US_ASCII)", Encoding::UTF_8
1711
example "Encoding.compatible?(Encoding::UTF_8, Encoding::ASCII_8BIT)", nil

0 commit comments

Comments
 (0)