< prev index next >

src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMethodData.java

Print this page

426         @Override
427         public double getBranchTakenProbability(HotSpotMethodData data, int position) {
428             return getExecutionCount(data, position) != 0 ? 1 : 0;
429         }
430 
431         @Override
432         public int getExecutionCount(HotSpotMethodData data, int position) {
433             return data.readUnsignedIntAsSignedInt(position, state.takenCountOffset);
434         }
435 
436         public int getTakenDisplacement(HotSpotMethodData data, int position) {
437             return data.readInt(position, state.takenDisplacementOffset);
438         }
439 
440         @Override
441         public StringBuilder appendTo(StringBuilder sb, HotSpotMethodData data, int pos) {
442             return sb.append(format("taken(%d) displacement(%d)", getExecutionCount(data, pos), getTakenDisplacement(data, pos)));
443         }
444     }
445 
446     static class RawItemProfile<T> {
447         final int entries;
448         final T[] items;
449         final long[] counts;
450         final long totalCount;
451 
452         RawItemProfile(int entries, T[] items, long[] counts, long totalCount) {
453             this.entries = entries;
454             this.items = items;
455             this.counts = counts;
456             this.totalCount = totalCount;
457         }
458     }
459 
460     abstract static class AbstractTypeData extends CounterData {
461 
462         protected AbstractTypeData(VMState state, int tag, int staticSize) {
463             super(state, tag, staticSize);
464         }
465 
466         @Override
467         public JavaTypeProfile getTypeProfile(HotSpotMethodData data, int position) {
468             return createTypeProfile(getNullSeen(data, position), getRawTypeProfile(data, position));
469         }
470 
471         private RawItemProfile<ResolvedJavaType> getRawTypeProfile(HotSpotMethodData data, int position) {
472             int typeProfileWidth = config.typeProfileWidth;
473 
474             ResolvedJavaType[] types = new ResolvedJavaType[typeProfileWidth];
475             long[] counts = new long[typeProfileWidth];
476             long totalCount = 0;
477             int entries = 0;
478 

426         @Override
427         public double getBranchTakenProbability(HotSpotMethodData data, int position) {
428             return getExecutionCount(data, position) != 0 ? 1 : 0;
429         }
430 
431         @Override
432         public int getExecutionCount(HotSpotMethodData data, int position) {
433             return data.readUnsignedIntAsSignedInt(position, state.takenCountOffset);
434         }
435 
436         public int getTakenDisplacement(HotSpotMethodData data, int position) {
437             return data.readInt(position, state.takenDisplacementOffset);
438         }
439 
440         @Override
441         public StringBuilder appendTo(StringBuilder sb, HotSpotMethodData data, int pos) {
442             return sb.append(format("taken(%d) displacement(%d)", getExecutionCount(data, pos), getTakenDisplacement(data, pos)));
443         }
444     }
445 
446     record RawItemProfile<T>(int entries, T[] items, long[] counts, long totalCount) {}












447 
448     abstract static class AbstractTypeData extends CounterData {
449 
450         protected AbstractTypeData(VMState state, int tag, int staticSize) {
451             super(state, tag, staticSize);
452         }
453 
454         @Override
455         public JavaTypeProfile getTypeProfile(HotSpotMethodData data, int position) {
456             return createTypeProfile(getNullSeen(data, position), getRawTypeProfile(data, position));
457         }
458 
459         private RawItemProfile<ResolvedJavaType> getRawTypeProfile(HotSpotMethodData data, int position) {
460             int typeProfileWidth = config.typeProfileWidth;
461 
462             ResolvedJavaType[] types = new ResolvedJavaType[typeProfileWidth];
463             long[] counts = new long[typeProfileWidth];
464             long totalCount = 0;
465             int entries = 0;
466 
< prev index next >