OSDN Git Service

Don't use the compiler driver for method resolution.
authorNicolas Geoffray <ngeoffray@google.com>
Mon, 23 Nov 2015 09:35:04 +0000 (09:35 +0000)
committerNicolas Geoffray <ngeoffray@google.com>
Tue, 1 Dec 2015 14:23:01 +0000 (14:23 +0000)
commit4db0bf9c4db6a09716c3388b7d2f88d534470339
tree71feab1b20d4d773f881e0afc26dfcd236c177d1
parentd1744d449cf2b56af7e0896b3729fac2a414e3af
Don't use the compiler driver for method resolution.

The compiler driver makes assumptions that don't hold for
the optimizing compiler, and will for example always go to
slow path for an invoke-super when there's no verified method.

Also fix GenerateInvokeVirtual in the presence of intrinsics.

Next change will address some of the TODOs in sharpening.cc.

Change-Id: I2b0e543ee9b9bebcadb2d26de29e850c59ad58b9
27 files changed:
compiler/optimizing/builder.cc
compiler/optimizing/builder.h
compiler/optimizing/code_generator_arm.cc
compiler/optimizing/code_generator_arm64.cc
compiler/optimizing/code_generator_mips64.cc
compiler/optimizing/code_generator_x86.cc
compiler/optimizing/code_generator_x86_64.cc
compiler/optimizing/graph_visualizer.cc
compiler/optimizing/inliner.cc
compiler/optimizing/intrinsics.cc
compiler/optimizing/nodes.h
compiler/optimizing/sharpening.cc
runtime/entrypoints/entrypoint_utils-inl.h
test/464-checker-inline-sharpen-calls/src/Main.java
test/492-checker-inline-invoke-interface/expected.txt
test/492-checker-inline-invoke-interface/src/Main.java
test/536-checker-intrinsic-optimization/src/Main.java
test/551-invoke-super/expected.txt [new file with mode: 0644]
test/551-invoke-super/info.txt [new file with mode: 0644]
test/551-invoke-super/smali/invokesuper.smali [new file with mode: 0644]
test/551-invoke-super/smali/superclass.smali [new file with mode: 0644]
test/551-invoke-super/src/Main.java [new file with mode: 0644]
test/552-invoke-non-existent-super/expected.txt [new file with mode: 0644]
test/552-invoke-non-existent-super/info.txt [new file with mode: 0644]
test/552-invoke-non-existent-super/smali/invokesuper.smali [new file with mode: 0644]
test/552-invoke-non-existent-super/smali/superclass.smali [new file with mode: 0644]
test/552-invoke-non-existent-super/src/Main.java [new file with mode: 0644]