|
58 | 58 | import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
|
59 | 59 | import com.oracle.truffle.api.dsl.Cached;
|
60 | 60 | import com.oracle.truffle.api.dsl.Fallback;
|
61 |
| -import com.oracle.truffle.api.dsl.ReportPolymorphism; |
62 | 61 | import com.oracle.truffle.api.dsl.Specialization;
|
63 | 62 | import com.oracle.truffle.api.profiles.BranchProfile;
|
64 | 63 | import com.oracle.truffle.api.profiles.ConditionProfile;
|
65 | 64 |
|
66 | 65 | @CoreModule(value = "Encoding", isClass = true)
|
67 | 66 | public abstract class EncodingNodes {
|
68 | 67 |
|
69 |
| - @ReportPolymorphism |
70 | 68 | @CoreMethod(names = "ascii_compatible?")
|
71 | 69 | public abstract static class AsciiCompatibleNode extends CoreMethodArrayArgumentsNode {
|
72 |
| - |
73 |
| - @Specialization(guards = "encoding == cachedEncoding", limit = "getIdentityCacheLimit()") |
74 |
| - protected boolean isAsciiCompatibleCached(RubyEncoding encoding, |
75 |
| - @Cached("encoding") RubyEncoding cachedEncoding, |
76 |
| - @Cached("isAsciiCompatible(cachedEncoding)") boolean isAsciiCompatible) { |
77 |
| - return isAsciiCompatible; |
78 |
| - } |
79 |
| - |
80 |
| - @Specialization(replaces = "isAsciiCompatibleCached") |
81 |
| - protected boolean isAsciiCompatibleUncached(RubyEncoding encoding) { |
82 |
| - return isAsciiCompatible(encoding); |
83 |
| - } |
84 |
| - |
85 |
| - protected static boolean isAsciiCompatible(RubyEncoding encoding) { |
| 70 | + @Specialization |
| 71 | + protected boolean isAsciiCompatible(RubyEncoding encoding) { |
86 | 72 | return encoding.encoding.isAsciiCompatible();
|
87 | 73 | }
|
88 | 74 | }
|
@@ -432,32 +418,20 @@ protected ImmutableRubyString localeCharacterMap(
|
432 | 418 | }
|
433 | 419 | }
|
434 | 420 |
|
435 |
| - @ReportPolymorphism |
436 | 421 | @CoreMethod(names = "dummy?")
|
437 | 422 | public abstract static class DummyNode extends CoreMethodArrayArgumentsNode {
|
438 |
| - |
439 |
| - @Specialization(guards = "encoding == cachedEncoding", limit = "getIdentityCacheLimit()") |
440 |
| - protected boolean isDummyCached(RubyEncoding encoding, |
441 |
| - @Cached("encoding") RubyEncoding cachedEncoding, |
442 |
| - @Cached("isDummyUncached(cachedEncoding)") boolean isDummy) { |
443 |
| - return isDummy; |
444 |
| - } |
445 |
| - |
446 |
| - @Specialization(replaces = "isDummyCached") |
447 |
| - protected boolean isDummyUncached(RubyEncoding encoding) { |
| 423 | + @Specialization |
| 424 | + protected boolean isDummy(RubyEncoding encoding) { |
448 | 425 | return encoding.encoding.isDummy();
|
449 | 426 | }
|
450 |
| - |
451 | 427 | }
|
452 | 428 |
|
453 | 429 | @CoreMethod(names = { "name", "to_s" })
|
454 | 430 | public abstract static class ToSNode extends CoreMethodArrayArgumentsNode {
|
455 |
| - |
456 | 431 | @Specialization
|
457 | 432 | protected ImmutableRubyString toS(RubyEncoding encoding) {
|
458 | 433 | return encoding.name;
|
459 | 434 | }
|
460 |
| - |
461 | 435 | }
|
462 | 436 |
|
463 | 437 | @CoreMethod(names = { "__allocate__", "__layout_allocate__" }, constructor = true, visibility = Visibility.PRIVATE)
|
@@ -494,12 +468,10 @@ protected Object eachAlias(RubyProc block) {
|
494 | 468 |
|
495 | 469 | @Primitive(name = "encoding_is_unicode")
|
496 | 470 | public abstract static class IsUnicodeNode extends PrimitiveArrayArgumentsNode {
|
497 |
| - |
498 | 471 | @Specialization
|
499 | 472 | protected boolean isUnicode(RubyEncoding encoding) {
|
500 | 473 | return encoding.encoding.isUnicode();
|
501 | 474 | }
|
502 |
| - |
503 | 475 | }
|
504 | 476 |
|
505 | 477 | @Primitive(name = "get_actual_encoding")
|
@@ -759,22 +731,18 @@ private RubyEncoding createDummy(String name) {
|
759 | 731 |
|
760 | 732 | @Primitive(name = "encoding_get_encoding_by_index", lowerFixnum = 0)
|
761 | 733 | public static abstract class GetEncodingObjectByIndexNode extends PrimitiveArrayArgumentsNode {
|
762 |
| - |
763 | 734 | @Specialization
|
764 | 735 | protected RubyEncoding getEncoding(int index) {
|
765 | 736 | return getContext().getEncodingManager().getRubyEncoding(index);
|
766 | 737 | }
|
767 |
| - |
768 | 738 | }
|
769 | 739 |
|
770 | 740 | @Primitive(name = "encoding_get_encoding_index")
|
771 | 741 | public static abstract class GetEncodingIndexNode extends PrimitiveArrayArgumentsNode {
|
772 |
| - |
773 | 742 | @Specialization
|
774 | 743 | protected int getIndex(RubyEncoding encoding) {
|
775 | 744 | return encoding.encoding.getIndex();
|
776 | 745 | }
|
777 |
| - |
778 | 746 | }
|
779 | 747 |
|
780 | 748 | public static abstract class CheckRopeEncodingNode extends RubyContextNode {
|
|
0 commit comments