AlwaysInlineIntrinsics and AbstractInliningPolicy.isIntrinsic

Christian Thalinger cthalinger at twitter.com
Thu Aug 10 08:08:04 UTC 2017


Currently looking at some inlining stuff and I noticed that AlwaysInlineIntrinsics in AbstractInliningPolicy.isIntrinsic doesn’t do anything since the two methods called (onlyIntrinsics and onlyForcedIntrinsics) have exactly the same implementation:

    protected boolean isIntrinsic(Replacements replacements, InlineInfo info) {
        if (AlwaysInlineIntrinsics.getValue(info.graph().getOptions())) {
            return onlyIntrinsics(replacements, info);
        } else {
            return onlyForcedIntrinsics(replacements, info);
        }
    }

    private static boolean onlyIntrinsics(Replacements replacements, InlineInfo info) {
        for (int i = 0; i < info.numberOfMethods(); i++) {
            if (!InliningUtil.canIntrinsify(replacements, info.methodAt(i), info.invoke().bci())) {
                return false;
            }
        }
        return true;
    }

    private static boolean onlyForcedIntrinsics(Replacements replacements, InlineInfo info) {
        for (int i = 0; i < info.numberOfMethods(); i++) {
            if (!InliningUtil.canIntrinsify(replacements, info.methodAt(i), info.invoke().bci())) {
                return false;
            }
        }
        return true;
    }

Am I missing something?


More information about the graal-dev mailing list