summaryrefslogtreecommitdiff
path: root/src/jit/gtstructs.h
diff options
context:
space:
mode:
authorPat Gavlin <pgavlin@gmail.com>2016-08-19 10:44:46 -0700
committerGitHub <noreply@github.com>2016-08-19 10:44:46 -0700
commit738f93e7baf5aef7639cdd4567e9cb1746aed619 (patch)
tree425681f48e72df83235e2a77a6c84cb93bed3927 /src/jit/gtstructs.h
parent00c85b302a078d5d13cfe9ff8cb453cd8296d6aa (diff)
downloadcoreclr-738f93e7baf5aef7639cdd4567e9cb1746aed619.tar.gz
coreclr-738f93e7baf5aef7639cdd4567e9cb1746aed619.tar.bz2
coreclr-738f93e7baf5aef7639cdd4567e9cb1746aed619.zip
Implement the proposed design for RyuJIT's LIR. (#6689)
These changes implement the design for RyuJIT's LIR described in https://github.com/dotnet/coreclr/blob/master/Documentation/design-docs/removing-embedded-statements.md. The following passes required changes: Rationalize, which has been almost completely rewritten Long decomposition Target-independent lowering Target-dependent lowering LSRA Liveness Flowgraph optimization Codegen For the most part, these changes are confined to the backend. Common code that needed to be updated included liveness, flowgraph optimization, and a few miscellaneous utilities. The utilities used to analyze and manipulate LIR live (almost) entirely in src/jit/lir.{cpp,h}. The core concepts that are unique to LIR are LIR::Use and LIR::Range. The latter is a tuple that captures an SDSU def (i.e. an LIR node) and its corresponding use->def edge and user. The former serves to abstract a self-contained sequence of LIR nodes that make up e.g. the contents of a basic block. Testing indicates that neither JIT throughput nor code quality are significantly impacted by these changes.
Diffstat (limited to 'src/jit/gtstructs.h')
-rw-r--r--src/jit/gtstructs.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/jit/gtstructs.h b/src/jit/gtstructs.h
index ae7311ace5..43483804b6 100644
--- a/src/jit/gtstructs.h
+++ b/src/jit/gtstructs.h
@@ -80,7 +80,7 @@ GTSTRUCT_1(ArrElem , GT_ARR_ELEM)
GTSTRUCT_1(ArrOffs , GT_ARR_OFFSET)
GTSTRUCT_1(ArrIndex , GT_ARR_INDEX)
GTSTRUCT_1(RetExpr , GT_RET_EXPR)
-GTSTRUCT_1(Stmt , GT_STMT)
+GTSTRUCT_2(Stmt , GT_STMT, GT_IL_OFFSET)
GTSTRUCT_1(Obj , GT_OBJ)
GTSTRUCT_2(CopyOrReload, GT_COPY, GT_RELOAD)
GTSTRUCT_2(ClsVar , GT_CLS_VAR, GT_CLS_VAR_ADDR)