diff options
author | Egor Chesakov <t-egche@microsoft.com> | 2016-07-21 15:37:41 -0700 |
---|---|---|
committer | Egor Chesakov <t-egche@microsoft.com> | 2016-08-08 17:58:25 -0700 |
commit | 3c30aa1642ac52844aa3078fd6bc79a06f5c586a (patch) | |
tree | 5a13beb22fce080b9172ee097670e4122eaab755 /src/jit/gtstructs.h | |
parent | 17ced7fea35cb89ce6fe6c0a614c9fe15171bdea (diff) | |
download | coreclr-3c30aa1642ac52844aa3078fd6bc79a06f5c586a.tar.gz coreclr-3c30aa1642ac52844aa3078fd6bc79a06f5c586a.tar.bz2 coreclr-3c30aa1642ac52844aa3078fd6bc79a06f5c586a.zip |
Work towards objects stack allocation: moved allocation part of newobj-lowering into separate phase
1. Introduced `GT_ALLOCOBJ` node to mark places where object allocation happens
2. In `importer.cpp` changed lowering of allocation part of newobj instruction from an allocation helper call to a `GT_ALLOCOBJ` node creation
3. Created new phase `ObjectAllocator` (`PHASE_ALLOCATE_OBJECTS`) and put it right after dominator computing (we will need the information for escape analysis)
4. Current implementation of ObjectAllocator walks over all basic blocks having flag `BBF_HAS_NEWOBJ` set and replaces `GT_ALLOCOBJ` with an allocation helper call
Diffstat (limited to 'src/jit/gtstructs.h')
-rw-r--r-- | src/jit/gtstructs.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/jit/gtstructs.h b/src/jit/gtstructs.h index c76e69f417..ae7311ace5 100644 --- a/src/jit/gtstructs.h +++ b/src/jit/gtstructs.h @@ -101,6 +101,7 @@ GTSTRUCT_1(CpBlk , GT_COPYBLK) #ifdef FEATURE_SIMD GTSTRUCT_1(SIMD , GT_SIMD) #endif // FEATURE_SIMD +GTSTRUCT_1(AllocObj , GT_ALLOCOBJ) /*****************************************************************************/ #undef GTSTRUCT_0 #undef GTSTRUCT_1 |