This repository has been archived by the owner on Mar 15, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 153
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Translate GcInfo from __llvm.stackmaps section to CoreCLR GCInfo Encoding. Testing: 1) We can now build and a few tests in a precise-GC environment. The correctness of generated GCInfo is verified by: a) Examining the GcInfo dump in the debugger (SOS) and comparing it against the assembly dump. b) Stepping through the debugger and watch it scan through the reported GC-Roots. c) The execution crashes for the same functions if the liveness information is not reported. 2) The execution crashes if we try to build MsCorLib for precise-GC. There are a few known issues (as noted in the comments) and the remaining issues need to be fixed via debugging. 3) The standard LLILC testig is still done using conservative-gc So, no testing impact is expected for the lab. A separate test-leg will be added to run tests with precise-GC. Fixes #31
- Loading branch information
1 parent
a4c4bc7
commit 514f121
Showing
12 changed files
with
447 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
//===---- include/gcinfo/target.h -------------------------------*- C++ -*-===// | ||
// | ||
// LLILC | ||
// | ||
// Copyright (c) Microsoft. All rights reserved. | ||
// Licensed under the MIT license. | ||
// See LICENSE file in the project root for full license information. | ||
// | ||
//===----------------------------------------------------------------------===// | ||
/// | ||
/// \file | ||
/// \brief Target specific definitions for GCInfo generation | ||
/// | ||
//===----------------------------------------------------------------------===// | ||
|
||
#ifndef GCINFO_TARGET_H | ||
#define GCINFO_TARGET_H | ||
|
||
#include "global.h" | ||
|
||
#if (defined(_TARGET_X86_) || defined(_TARGET_X64_) || defined(_TARGET_AMD64_)) | ||
|
||
// Define DWARF encodings for registers | ||
// Size variants (ex: AL,AH,AX,EAX,RAX) all get the same Dwarf register number | ||
|
||
#define DW_RAX 0 | ||
#define DW_RBX 3 | ||
#define DW_RCX 2 | ||
#define DW_RDX 1 | ||
#define DW_RSI 4 | ||
#define DW_RDI 5 | ||
#define DW_RBP 6 | ||
#define DW_RSP 7 | ||
#define DW_RIP 16 | ||
#define DW_R8 8 | ||
#define DW_R9 9 | ||
#define DW_R10 10 | ||
#define DW_R11 11 | ||
#define DW_R12 12 | ||
#define DW_R13 13 | ||
#define DW_R14 14 | ||
#define DW_R15 15 | ||
|
||
#define DW_FRAME_POINTER DW_RBP | ||
#define DW_STACK_POINTER DW_RSP | ||
|
||
#else | ||
#error GCTables not implemented for this target | ||
#endif // defined(_TARGET_X86_ || _TARGET_X64_ || _TARGET_AMD64_) | ||
|
||
#endif // GCINFO_TARGET_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -19,4 +19,5 @@ add_llilcjit_library(GcInfo | |
STATIC | ||
${CORECLR_GCINFO}/gcinfoencoder.cpp | ||
GcInfoUtil.cpp | ||
GcInfo.cpp | ||
) |
Oops, something went wrong.