tree 6d455f9ce7f24af3e688dc90b5436846508fa7ea
parent 2a272a93734df37c5d7de1a33a2f06bbbaa790c2
author Mathias Rav <mathiasr@google.com> 1521707352 +0100
committer Mathias Rav <mathiasr@google.com> 1521707352 +0100

Implement CfCode.registerInstructionsReferences()

Add new method CfInstruction.registerUse(), modeled after the method
Instruction.registerUse() in the DEX backend, and use this method to
implement CfCode.registerInstructionsReferences(). This method is
required to do minification and tree shaking.

Implement CfInstruction.registerUse() in the following classes:

* CfNew
* CfNewArray
* CfMultiANewArray
* CfCheckCast
* CfInstanceOf
* CfConstMethodHandle
* CfConstClass
* CfConstMethodType
* CfInvoke
* CfInvokeDynamic
* CfFieldInstruction

Use the noop-implementation in CfInstruction for the remaining classes:

* CfArrayLength
* CfArrayLoad
* CfArrayStore
* CfBinop
* CfFrame
* CfGoto
* CfIf
* CfIfCmp
* CfLabel
* CfLoad
* CfMonitor
* CfNop
* CfPop
* CfPosition
* CfReturn
* CfReturnVoid
* CfStore
* CfSwitch
* CfThrow
* CfUnop

Change-Id: I8f7c9f5423621f1a617ce616b980c2c3f89600b5