OSDN Git Service

ART: Create BoundType for CheckCast early
authorDavid Brazdil <dbrazdil@google.com>
Sun, 27 Dec 2015 13:36:12 +0000 (13:36 +0000)
committerDavid Brazdil <dbrazdil@google.com>
Wed, 6 Jan 2016 10:33:30 +0000 (10:33 +0000)
commitf555258861aea7df8af9c2241ab761227fd2f66a
tree1317545f50f78eb7c9e4dd44ebfb256bdff0af11
parentc917d195d8d8d05f90796b1e0842883fc608346d
ART: Create BoundType for CheckCast early

ReferenceTypePropagation creates a BoundType for each CheckCast and
replaces all dominated uses of the casted object with it. This does
not include Phi uses on the boundary of the dominated scope, reducing
typing precision. This patch creates the BoundType in Builder, causing
SsaBuilder to replace uses of the object automatically.

Bug: 26081304

Change-Id: I083979155cccb348071ff58cb9060a896ed7d2ac
compiler/optimizing/builder.cc
compiler/optimizing/graph_checker.cc
compiler/optimizing/graph_checker.h
compiler/optimizing/nodes.cc
compiler/optimizing/nodes.h
compiler/optimizing/reference_type_propagation.cc
test/554-checker-rtp-checkcast/expected.txt [new file with mode: 0644]
test/554-checker-rtp-checkcast/info.txt [new file with mode: 0644]
test/554-checker-rtp-checkcast/src/Main.java [new file with mode: 0644]