HELLO·Android
系统源代码
IT资讯
技术文章
我的收藏
注册
登录
-
我收藏的文章
创建代码块
我的代码块
我的账号
Android 10
|
10.0.0_r6
下载
查看原文件
收藏
根目录
art
test
569-checker-pattern-replacement
src
Main.java
/* * Copyright (C) 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ public class Main { /// CHECK-START: void Main.staticNop() inliner (before) /// CHECK: InvokeStaticOrDirect /// CHECK-START: void Main.staticNop() inliner (after) /// CHECK-NOT: InvokeStaticOrDirect public static void staticNop() { Second.staticNop(11); } /// CHECK-START: void Main.nop(Second) inliner (before) /// CHECK: InvokeVirtual /// CHECK-START: void Main.nop(Second) inliner (after) /// CHECK-NOT: InvokeVirtual public static void nop(Second s) { s.nop(); } /// CHECK-START: java.lang.Object Main.staticReturnArg2(java.lang.String) inliner (before) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> IntConstant 77 /// CHECK-DAG: <
> ClinitCheck // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: <
> InvokeStaticOrDirect [<
>,<
>{{(,[ij]\d+)?}},<
>] /// CHECK-DAG: Return [<
>] /// CHECK-START: java.lang.Object Main.staticReturnArg2(java.lang.String) inliner (after) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: Return [<
>] /// CHECK-START: java.lang.Object Main.staticReturnArg2(java.lang.String) inliner (after) /// CHECK-NOT: InvokeStaticOrDirect public static Object staticReturnArg2(String value) { return Second.staticReturnArg2(77, value); } /// CHECK-START: long Main.returnArg1(Second, long) inliner (before) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NullCheck [<
>] /// CHECK-DAG: <
> InvokeVirtual [<
>,<
>] /// CHECK-DAG: Return [<
>] /// CHECK-START: long Main.returnArg1(Second, long) inliner (after) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: Return [<
>] /// CHECK-START: long Main.returnArg1(Second, long) inliner (after) /// CHECK-NOT: InvokeVirtual public static long returnArg1(Second s, long value) { return s.returnArg1(value); } /// CHECK-START: int Main.staticReturn9() inliner (before) /// CHECK: {{i\d+}} InvokeStaticOrDirect /// CHECK-START: int Main.staticReturn9() inliner (before) /// CHECK-NOT: IntConstant 9 /// CHECK-START: int Main.staticReturn9() inliner (after) /// CHECK-DAG: <
> IntConstant 9 /// CHECK-DAG: Return [<
>] /// CHECK-START: int Main.staticReturn9() inliner (after) /// CHECK-NOT: InvokeStaticOrDirect public static int staticReturn9() { return Second.staticReturn9(); } /// CHECK-START: int Main.return7(Second) inliner (before) /// CHECK: {{i\d+}} InvokeVirtual /// CHECK-START: int Main.return7(Second) inliner (before) /// CHECK-NOT: IntConstant 7 /// CHECK-START: int Main.return7(Second) inliner (after) /// CHECK-DAG: <
> IntConstant 7 /// CHECK-DAG: Return [<
>] /// CHECK-START: int Main.return7(Second) inliner (after) /// CHECK-NOT: InvokeVirtual public static int return7(Second s) { return s.return7(null); } /// CHECK-START: java.lang.String Main.staticReturnNull() inliner (before) /// CHECK: {{l\d+}} InvokeStaticOrDirect /// CHECK-START: java.lang.String Main.staticReturnNull() inliner (before) /// CHECK-NOT: NullConstant /// CHECK-START: java.lang.String Main.staticReturnNull() inliner (after) /// CHECK-DAG: <
> NullConstant /// CHECK-DAG: Return [<
>] /// CHECK-START: java.lang.String Main.staticReturnNull() inliner (after) /// CHECK-NOT: InvokeStaticOrDirect public static String staticReturnNull() { return Second.staticReturnNull(); } /// CHECK-START: java.lang.Object Main.returnNull(Second) inliner (before) /// CHECK: {{l\d+}} InvokeVirtual /// CHECK-START: java.lang.Object Main.returnNull(Second) inliner (before) /// CHECK-NOT: NullConstant /// CHECK-START: java.lang.Object Main.returnNull(Second) inliner (after) /// CHECK-DAG: <
> NullConstant /// CHECK-DAG: Return [<
>] /// CHECK-START: java.lang.Object Main.returnNull(Second) inliner (after) /// CHECK-NOT: InvokeVirtual public static Object returnNull(Second s) { return s.returnNull(); } /// CHECK-START: int Main.getInt(Second) inliner (before) /// CHECK: {{i\d+}} InvokeVirtual /// CHECK-START: int Main.getInt(Second) inliner (after) /// CHECK: {{i\d+}} InstanceFieldGet /// CHECK-START: int Main.getInt(Second) inliner (after) /// CHECK-NOT: InvokeVirtual public static int getInt(Second s) { return s.getInstanceIntField(); } /// CHECK-START: double Main.getDouble(Second) inliner (before) /// CHECK: {{d\d+}} InvokeVirtual /// CHECK-START: double Main.getDouble(Second) inliner (after) /// CHECK: {{d\d+}} InstanceFieldGet /// CHECK-START: double Main.getDouble(Second) inliner (after) /// CHECK-NOT: InvokeVirtual public static double getDouble(Second s) { return s.getInstanceDoubleField(22); } /// CHECK-START: java.lang.Object Main.getObject(Second) inliner (before) /// CHECK: {{l\d+}} InvokeVirtual /// CHECK-START: java.lang.Object Main.getObject(Second) inliner (after) /// CHECK: {{l\d+}} InstanceFieldGet /// CHECK-START: java.lang.Object Main.getObject(Second) inliner (after) /// CHECK-NOT: InvokeVirtual public static Object getObject(Second s) { return s.getInstanceObjectField(-1L); } /// CHECK-START: java.lang.String Main.getString(Second) inliner (before) /// CHECK: {{l\d+}} InvokeVirtual /// CHECK-START: java.lang.String Main.getString(Second) inliner (after) /// CHECK: {{l\d+}} InstanceFieldGet /// CHECK-START: java.lang.String Main.getString(Second) inliner (after) /// CHECK-NOT: InvokeVirtual public static String getString(Second s) { return s.getInstanceStringField(null, "whatever", 1234L); } /// CHECK-START: int Main.staticGetInt(Second) inliner (before) /// CHECK: {{i\d+}} InvokeStaticOrDirect /// CHECK-START: int Main.staticGetInt(Second) inliner (after) /// CHECK: {{i\d+}} InvokeStaticOrDirect /// CHECK-START: int Main.staticGetInt(Second) inliner (after) /// CHECK-NOT: InstanceFieldGet public static int staticGetInt(Second s) { return Second.staticGetInstanceIntField(s); } /// CHECK-START: double Main.getDoubleFromParam(Second) inliner (before) /// CHECK: {{d\d+}} InvokeVirtual /// CHECK-START: double Main.getDoubleFromParam(Second) inliner (after) /// CHECK: {{d\d+}} InvokeVirtual /// CHECK-START: double Main.getDoubleFromParam(Second) inliner (after) /// CHECK-NOT: InstanceFieldGet public static double getDoubleFromParam(Second s) { return s.getInstanceDoubleFieldFromParam(s); } /// CHECK-START: int Main.getStaticInt(Second) inliner (before) /// CHECK: {{i\d+}} InvokeVirtual /// CHECK-START: int Main.getStaticInt(Second) inliner (after) /// CHECK: {{i\d+}} InvokeVirtual /// CHECK-START: int Main.getStaticInt(Second) inliner (after) /// CHECK-NOT: InstanceFieldGet /// CHECK-NOT: StaticFieldGet public static int getStaticInt(Second s) { return s.getStaticIntField(); } /// CHECK-START: long Main.setLong(Second, long) inliner (before) /// CHECK: InvokeVirtual /// CHECK-START: long Main.setLong(Second, long) inliner (after) /// CHECK: InstanceFieldSet /// CHECK-START: long Main.setLong(Second, long) inliner (after) /// CHECK-NOT: InvokeVirtual public static long setLong(Second s, long value) { s.setInstanceLongField(-1, value); return s.instanceLongField; } /// CHECK-START: long Main.setLongReturnArg2(Second, long, int) inliner (before) /// CHECK: InvokeVirtual /// CHECK-START: long Main.setLongReturnArg2(Second, long, int) inliner (after) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NullCheck [<
>] /// CHECK-DAG: InstanceFieldSet [<
>,<
>] /// CHECK-DAG: <
> NullCheck [<
>] /// CHECK-DAG: <
> InstanceFieldGet [<
>] /// CHECK-DAG: <
> TypeConversion [<
>] /// CHECK-DAG: <
> Add [<
>,<
>] /// CHECK-DAG: Return [<
>] /// CHECK-START: long Main.setLongReturnArg2(Second, long, int) inliner (after) /// CHECK-NOT: InvokeVirtual public static long setLongReturnArg2(Second s, long value, int arg2) { int result = s.setInstanceLongFieldReturnArg2(value, arg2); return s.instanceLongField + result; } /// CHECK-START: long Main.staticSetLong(Second, long) inliner (before) /// CHECK: InvokeStaticOrDirect /// CHECK-START: long Main.staticSetLong(Second, long) inliner (after) /// CHECK: InvokeStaticOrDirect /// CHECK-START: long Main.staticSetLong(Second, long) inliner (after) /// CHECK-NOT: InstanceFieldSet public static long staticSetLong(Second s, long value) { Second.staticSetInstanceLongField(s, value); return s.instanceLongField; } /// CHECK-START: long Main.setLongThroughParam(Second, long) inliner (before) /// CHECK: InvokeVirtual /// CHECK-START: long Main.setLongThroughParam(Second, long) inliner (after) /// CHECK: InvokeVirtual /// CHECK-START: long Main.setLongThroughParam(Second, long) inliner (after) /// CHECK-NOT: InstanceFieldSet public static long setLongThroughParam(Second s, long value) { s.setInstanceLongFieldThroughParam(s, value); return s.instanceLongField; } /// CHECK-START: float Main.setStaticFloat(Second, float) inliner (before) /// CHECK: InvokeVirtual /// CHECK-START: float Main.setStaticFloat(Second, float) inliner (after) /// CHECK: InvokeVirtual /// CHECK-START: float Main.setStaticFloat(Second, float) inliner (after) /// CHECK-NOT: InstanceFieldSet /// CHECK-NOT: StaticFieldSet public static float setStaticFloat(Second s, float value) { s.setStaticFloatField(value); return s.staticFloatField; } /// CHECK-START: java.lang.Object Main.newObject() inliner (before) /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>{{(,[ij]\d+)?}}] method_name:java.lang.Object.
/// CHECK-START: java.lang.Object Main.newObject() inliner (after) /// CHECK-NOT: InvokeStaticOrDirect public static Object newObject() { return new Object(); } /// CHECK-START: double Main.constructBase() inliner (before) /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>{{(,[ij]\d+)?}}] method_name:Base.
/// CHECK-START: double Main.constructBase() inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-NOT: InstanceFieldSet public static double constructBase() { Base b = new Base(); return b.intField + b.doubleField; } /// CHECK-START: double Main.constructBase(int) inliner (before) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>{{(,[ij]\d+)?}}] method_name:Base.
/// CHECK-START: double Main.constructBase(int) inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-START: double Main.constructBase(int) inliner (after) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance /// CHECK-DAG: InstanceFieldSet [<
>,<
>] /// CHECK-START: double Main.constructBase(int) inliner (after) /// CHECK-DAG: InstanceFieldSet /// CHECK-NOT: InstanceFieldSet public static double constructBase(int intValue) { Base b = new Base(intValue); return b.intField + b.doubleField; } /// CHECK-START: double Main.constructBaseWith0() inliner (before) /// CHECK-DAG: <
> IntConstant 0 /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>{{(,[ij]\d+)?}}] method_name:Base.
/// CHECK-START: double Main.constructBaseWith0() inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-NOT: InstanceFieldSet public static double constructBaseWith0() { Base b = new Base(0); return b.intField + b.doubleField; } /// CHECK-START: java.lang.String Main.constructBase(java.lang.String) inliner (before) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>{{(,[ij]\d+)?}}] method_name:Base.
/// CHECK-START: java.lang.String Main.constructBase(java.lang.String) inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-START: java.lang.String Main.constructBase(java.lang.String) inliner (after) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance /// CHECK-DAG: InstanceFieldSet [<
>,<
>] /// CHECK-START: java.lang.String Main.constructBase(java.lang.String) inliner (after) /// CHECK-DAG: InstanceFieldSet /// CHECK-NOT: InstanceFieldSet public static String constructBase(String stringValue) { Base b = new Base(stringValue); return b.stringField; } /// CHECK-START: java.lang.String Main.constructBaseWithNullString() inliner (before) /// CHECK-DAG: <
> NullConstant /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>{{(,[ij]\d+)?}}] method_name:Base.
/// CHECK-START: java.lang.String Main.constructBaseWithNullString() inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-START: java.lang.String Main.constructBaseWithNullString() inliner (after) /// CHECK-NOT: InstanceFieldSet public static String constructBaseWithNullString() { String stringValue = null; Base b = new Base(stringValue); return b.stringField; } /// CHECK-START: double Main.constructBase(double, java.lang.Object) inliner (before) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>,<
>{{(,[ij]\d+)?}}] method_name:Base.
/// CHECK-START: double Main.constructBase(double, java.lang.Object) inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-START: double Main.constructBase(double, java.lang.Object) inliner (after) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance /// CHECK-DAG: InstanceFieldSet [<
>,<
>] /// CHECK-DAG: InstanceFieldSet [<
>,<
>] /// CHECK-START: double Main.constructBase(double, java.lang.Object) inliner (after) /// CHECK-DAG: InstanceFieldSet /// CHECK-DAG: InstanceFieldSet /// CHECK-NOT: InstanceFieldSet public static double constructBase(double doubleValue, Object objectValue) { Base b = new Base(doubleValue, objectValue); return (b.objectField != null) ? b.doubleField : -b.doubleField; } /// CHECK-START: double Main.constructBase(int, double, java.lang.Object) inliner (before) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>,<
>,<
>{{(,[ij]\d+)?}}] method_name:Base.
/// CHECK-START: double Main.constructBase(int, double, java.lang.Object) inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-START: double Main.constructBase(int, double, java.lang.Object) inliner (after) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance /// CHECK-DAG: InstanceFieldSet [<
>,<
>] /// CHECK-DAG: InstanceFieldSet [<
>,<
>] /// CHECK-DAG: InstanceFieldSet [<
>,<
>] /// CHECK-START: double Main.constructBase(int, double, java.lang.Object) inliner (after) /// CHECK-DAG: InstanceFieldSet /// CHECK-DAG: InstanceFieldSet /// CHECK-DAG: InstanceFieldSet /// CHECK-NOT: InstanceFieldSet public static double constructBase(int intValue, double doubleValue, Object objectValue) { Base b = new Base(intValue, doubleValue, objectValue); double tmp = b.intField + b.doubleField; return (b.objectField != null) ? tmp : -tmp; } /// CHECK-START: double Main.constructBaseWith0DoubleNull(double) inliner (before) /// CHECK-DAG: <
> IntConstant 0 /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NullConstant /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>,<
>,<
>{{(,[ij]\d+)?}}] method_name:Base.
/// CHECK-START: double Main.constructBaseWith0DoubleNull(double) inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-START: double Main.constructBaseWith0DoubleNull(double) inliner (after) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance /// CHECK-DAG: InstanceFieldSet [<
>,<
>] /// CHECK-START: double Main.constructBaseWith0DoubleNull(double) inliner (after) /// CHECK-DAG: InstanceFieldSet /// CHECK-NOT: InstanceFieldSet public static double constructBaseWith0DoubleNull(double doubleValue) { Base b = new Base(0, doubleValue, null); double tmp = b.intField + b.doubleField; return (b.objectField != null) ? tmp : -tmp; } /// CHECK-START: double Main.constructBase(int, double, java.lang.Object, java.lang.String) inliner (before) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>,<
>,{{l\d+}},{{l\d+}}{{(,[ij]\d+)?}}] method_name:Base.
/// CHECK-START: double Main.constructBase(int, double, java.lang.Object, java.lang.String) inliner (after) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>,<
>,{{l\d+}},{{l\d+}}{{(,[ij]\d+)?}}] method_name:Base.
/// CHECK-START: double Main.constructBase(int, double, java.lang.Object, java.lang.String) inliner (after) /// CHECK-NOT: InstanceFieldSet public static double constructBase( int intValue, double doubleValue, Object objectValue, String stringValue) { Base b = new Base(intValue, doubleValue, objectValue, stringValue); double tmp = b.intField + b.doubleField; tmp = (b.objectField != null) ? tmp : -tmp; return (b.stringField != null) ? 2.0 * tmp : 0.5 * tmp; } /// CHECK-START: double Main.constructBase(double) inliner (before) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>{{(,[ij]\d+)?}}] method_name:Base.
/// CHECK-START: double Main.constructBase(double) inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-START: double Main.constructBase(double) inliner (after) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance /// CHECK-DAG: InstanceFieldSet [<
>,<
>] /// CHECK-START: double Main.constructBase(double) inliner (after) /// CHECK-DAG: InstanceFieldSet /// CHECK-NOT: InstanceFieldSet public static double constructBase(double doubleValue) { Base b = new Base(doubleValue); return b.intField + b.doubleField; } /// CHECK-START: double Main.constructBaseWith0d() inliner (before) /// CHECK-DAG: <
> DoubleConstant /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>{{(,[ij]\d+)?}}] method_name:Base.
/// CHECK-START: double Main.constructBaseWith0d() inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-NOT: InstanceFieldSet public static double constructBaseWith0d() { Base b = new Base(0.0); return b.intField + b.doubleField; } /// CHECK-START: double Main.constructBase(java.lang.Object) inliner (before) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>{{(,[ij]\d+)?}}] method_name:Base.
/// CHECK-START: double Main.constructBase(java.lang.Object) inliner (after) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>{{(,[ij]\d+)?}}] method_name:Base.
/// CHECK-START: double Main.constructBase(java.lang.Object) inliner (after) /// CHECK-NOT: InstanceFieldSet public static double constructBase(Object objectValue) { Base b = new Base(objectValue); double tmp = b.intField + b.doubleField; return (b.objectField != null) ? tmp + 1.0 : tmp - 1.0; } /// CHECK-START: double Main.constructBase(int, long) inliner (before) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>,<
>{{(,[ij]\d+)?}}] method_name:Base.
/// CHECK-START: double Main.constructBase(int, long) inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-START: double Main.constructBase(int, long) inliner (after) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance /// CHECK-DAG: InstanceFieldSet [<
>,<
>] /// CHECK-START: double Main.constructBase(int, long) inliner (after) /// CHECK-DAG: InstanceFieldSet /// CHECK-NOT: InstanceFieldSet public static double constructBase(int intValue, long dummy) { Base b = new Base(intValue, dummy); return b.intField + b.doubleField; } /// CHECK-START: double Main.constructDerived() inliner (before) /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>{{(,[ij]\d+)?}}] method_name:Derived.
/// CHECK-START: double Main.constructDerived() inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-NOT: InstanceFieldSet public static double constructDerived() { Derived d = new Derived(); return d.intField + d.doubleField; } /// CHECK-START: double Main.constructDerived(int) inliner (before) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>{{(,[ij]\d+)?}}] method_name:Derived.
/// CHECK-START: double Main.constructDerived(int) inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-START: double Main.constructDerived(int) inliner (after) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance /// CHECK-DAG: InstanceFieldSet [<
>,<
>] /// CHECK-START: double Main.constructDerived(int) inliner (after) /// CHECK-DAG: InstanceFieldSet /// CHECK-NOT: InstanceFieldSet public static double constructDerived(int intValue) { Derived d = new Derived(intValue); return d.intField + d.doubleField; } /// CHECK-START: double Main.constructDerivedWith0() inliner (before) /// CHECK-DAG: <
> IntConstant 0 /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>{{(,[ij]\d+)?}}] method_name:Derived.
/// CHECK-START: double Main.constructDerivedWith0() inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-NOT: InstanceFieldSet public static double constructDerivedWith0() { Derived d = new Derived(0); return d.intField + d.doubleField; } /// CHECK-START: java.lang.String Main.constructDerived(java.lang.String) inliner (before) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>{{(,[ij]\d+)?}}] method_name:Derived.
/// CHECK-START: java.lang.String Main.constructDerived(java.lang.String) inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-START: java.lang.String Main.constructDerived(java.lang.String) inliner (after) /// CHECK-NOT: InstanceFieldSet public static String constructDerived(String stringValue) { Derived d = new Derived(stringValue); return d.stringField; } /// CHECK-START: double Main.constructDerived(double) inliner (before) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>{{(,[ij]\d+)?}}] method_name:Derived.
/// CHECK-START: double Main.constructDerived(double) inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-START: double Main.constructDerived(double) inliner (after) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance /// CHECK-DAG: InstanceFieldSet [<
>,<
>] /// CHECK-START: double Main.constructDerived(double) inliner (after) /// CHECK-DAG: InstanceFieldSet /// CHECK-NOT: InstanceFieldSet public static double constructDerived(double doubleValue) { Derived d = new Derived(doubleValue); return d.intField + d.doubleField; } /// CHECK-START: double Main.constructDerivedWith0d() inliner (before) /// CHECK-DAG: <
> DoubleConstant /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>{{(,[ij]\d+)?}}] method_name:Derived.
/// CHECK-START: double Main.constructDerivedWith0d() inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-NOT: InstanceFieldSet public static double constructDerivedWith0d() { Derived d = new Derived(0.0); return d.intField + d.doubleField; } /// CHECK-START: double Main.constructDerived(int, double, java.lang.Object) inliner (before) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>,<
>,<
>{{(,[ij]\d+)?}}] method_name:Derived.
/// CHECK-START: double Main.constructDerived(int, double, java.lang.Object) inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-START: double Main.constructDerived(int, double, java.lang.Object) inliner (after) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance /// CHECK-DAG: InstanceFieldSet [<
>,<
>] /// CHECK-START: double Main.constructDerived(int, double, java.lang.Object) inliner (after) /// CHECK-DAG: InstanceFieldSet /// CHECK-NOT: InstanceFieldSet public static double constructDerived(int intValue, double doubleValue, Object objectValue) { Derived d = new Derived(intValue, doubleValue, objectValue); double tmp = d.intField + d.doubleField; return (d.objectField != null) ? tmp : -tmp; } /// CHECK-START: double Main.constructDerived(int, double, java.lang.Object, java.lang.String) inliner (before) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>,<
>,{{l\d+}},{{l\d+}}{{(,[ij]\d+)?}}] method_name:Derived.
/// CHECK-START: double Main.constructDerived(int, double, java.lang.Object, java.lang.String) inliner (after) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>,<
>,{{l\d+}},{{l\d+}}{{(,[ij]\d+)?}}] method_name:Derived.
/// CHECK-START: double Main.constructDerived(int, double, java.lang.Object, java.lang.String) inliner (after) /// CHECK-NOT: InstanceFieldSet public static double constructDerived( int intValue, double doubleValue, Object objectValue, String stringValue) { Derived d = new Derived(intValue, doubleValue, objectValue, stringValue); double tmp = d.intField + d.doubleField; tmp = (d.objectField != null) ? tmp : -tmp; return (d.stringField != null) ? 2.0 * tmp : 0.5 * tmp; } /// CHECK-START: double Main.constructDerived(float) inliner (before) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>{{(,[ij]\d+)?}}] method_name:Derived.
/// CHECK-START: double Main.constructDerived(float) inliner (after) /// CHECK: ConstructorFence /// CHECK-NOT: InvokeStaticOrDirect /// CHECK-NOT: ConstructorFence /// CHECK-START: double Main.constructDerived(float) inliner (after) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance /// CHECK-DAG: InstanceFieldSet [<
>,<
>] /// CHECK-START: double Main.constructDerived(float) inliner (after) /// CHECK-DAG: InstanceFieldSet /// CHECK-NOT: InstanceFieldSet public static double constructDerived(float floatValue) { Derived d = new Derived(floatValue); return d.intField + d.doubleField + d.floatField; } /// CHECK-START: double Main.constructDerived(int, double, java.lang.Object, float) inliner (before) /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> ParameterValue /// CHECK-DAG: <
> NewInstance // Note: The ArtMethod* (typed as int or long) is optional after sharpening. /// CHECK-DAG: InvokeStaticOrDirect [<
>,<
>,<