summaryrefslogtreecommitdiff
path: root/compiler/optimizing/nodes.h
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2021-01-05 16:57:30 +0000
committer Vladimir Marko <vmarko@google.com> 2021-01-06 15:06:24 +0000
commitc9fcfd02a69170cedcd4cf2e66826f246dff6267 (patch)
tree2bc39091ec4dbc71bad37efafde41d13d168f0ca /compiler/optimizing/nodes.h
parent782fb716122d37dc4c4d7482afb21f6e68be04b4 (diff)
Optimizing: Add debugging output for HInstruction.
Allow printing individual instruction and its arguments with the HGraphVisualizer. Arguments are dumped "recursively" (but implemented with a queue instead of actual recursion). For example, printing the Return instruction from the method Main.testLoop17 in 530-checker-lse yields v28 Return [i27] dex_pc:23 loop:none i27 Add [i24,i26] dex_pc:22 loop:none i24 Phi [i5,i15] dex_pc:n/a reg:0 is_catch_phi:false loop:none i5 IntConstant dex_pc:0 1 loop:none i15 IntConstant dex_pc:5 2 loop:none i26 InstanceFieldGet [l6] dex_pc:20 field_name:TestClass.i field_type:Int32 loop:none l6 NullCheck [l1] dex_pc:1 env:[[i5,_,_,l1,i2]] loop:none l1 ParameterValue dex_pc:n/a loop:none Test: Manual; modify LSE to print the instruction above. Change-Id: Iaf41ba62cd6a5a36236ad0abca082ebffcf6a20e
Diffstat (limited to 'compiler/optimizing/nodes.h')
-rw-r--r--compiler/optimizing/nodes.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h
index d15e40aeff..125f86be81 100644
--- a/compiler/optimizing/nodes.h
+++ b/compiler/optimizing/nodes.h
@@ -2145,6 +2145,7 @@ class HInstruction : public ArenaObject<kArenaAllocInstruction> {
virtual ~HInstruction() {}
+ std::ostream& Dump(std::ostream& os, bool dump_args = false);
HInstruction* GetNext() const { return next_; }
HInstruction* GetPrevious() const { return previous_; }