summaryrefslogtreecommitdiff
path: root/compiler/optimizing/graph_visualizer.cc
diff options
context:
space:
mode:
authorVladimir Marko <vmarko@google.com>2016-02-04 19:46:56 +0000
committerVladimir Marko <vmarko@google.com>2016-02-09 19:57:41 +0000
commit354efa6cdf558b2331e8fec539893fa51763806e (patch)
treeb2d91993fc46011d1eeb416d411bf16fb4d25c20 /compiler/optimizing/graph_visualizer.cc
parent519281001dabe9060e2bfefc2382570bab26c96a (diff)
Try to substitute constructor chains for IPUTs.
Match a constructor chain where each constructor either forwards some or all of its arguments to the next (i.e. superclass constructor or a constructor in the same class) and may pass extra zeros (of any type, including null), followed by any number of IPUTs on "this", storing either arguments or zeros, until we reach the contructor of java.lang.Object. When collecting IPUTs from the constructor chain, remove any IPUTs that store the same field as an IPUT that comes later. This is safe in this case even if those IPUTs store volatile fields because the uninitialized object reference wasn't allowed to escape yet. Also remove any IPUTs that store zero values as the allocated object is already zero initialized. Change-Id: If93022310bf04fe38ee741665ac4a65d4c2bb25f
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
0 files changed, 0 insertions, 0 deletions