Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Unified Diff: src/assembler.cc

Issue 2451853002: Uniform and precise source positions for inlining (Closed)
Patch Set: fixed gcmole issue Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/assembler.cc
diff --git a/src/assembler.cc b/src/assembler.cc
index 676a9febdbff695b79db82dadfa5a1958125d143..a2c0ebebaf96e283485b7e63a3f9b660417092a1 100644
--- a/src/assembler.cc
+++ b/src/assembler.cc
@@ -760,8 +760,10 @@ const char* RelocInfo::RelocModeName(RelocInfo::Mode rmode) {
return "internal reference";
case INTERNAL_REFERENCE_ENCODED:
return "encoded internal reference";
- case DEOPT_POSITION:
- return "deopt position";
+ case DEOPT_SCRIPT_OFFSET:
+ return "deopt script offset";
+ case DEOPT_INLINING_ID:
+ return "deopt inlining id";
case DEOPT_REASON:
return "deopt reason";
case DEOPT_ID:
@@ -801,7 +803,7 @@ void RelocInfo::Print(Isolate* isolate, std::ostream& os) { // NOLINT
os << static_cast<const void*>(pc_) << " " << RelocModeName(rmode_);
if (IsComment(rmode_)) {
os << " (" << reinterpret_cast<char*>(data_) << ")";
- } else if (rmode_ == DEOPT_POSITION) {
+ } else if (rmode_ == DEOPT_SCRIPT_OFFSET || rmode_ == DEOPT_INLINING_ID) {
os << " (" << data() << ")";
} else if (rmode_ == DEOPT_REASON) {
os << " ("
@@ -872,7 +874,8 @@ void RelocInfo::Verify(Isolate* isolate) {
case RUNTIME_ENTRY:
case COMMENT:
case EXTERNAL_REFERENCE:
- case DEOPT_POSITION:
+ case DEOPT_SCRIPT_OFFSET:
+ case DEOPT_INLINING_ID:
case DEOPT_REASON:
case DEOPT_ID:
case CONST_POOL:
@@ -1891,11 +1894,12 @@ int ConstantPoolBuilder::Emit(Assembler* assm) {
// Platform specific but identical code for all the platforms.
-void Assembler::RecordDeoptReason(DeoptimizeReason reason, int raw_position,
- int id) {
+void Assembler::RecordDeoptReason(DeoptimizeReason reason,
+ SourcePosition position, int id) {
if (FLAG_trace_deopt || isolate()->is_profiling()) {
EnsureSpace ensure_space(this);
- RecordRelocInfo(RelocInfo::DEOPT_POSITION, raw_position);
+ RecordRelocInfo(RelocInfo::DEOPT_SCRIPT_OFFSET, position.ScriptOffset());
+ RecordRelocInfo(RelocInfo::DEOPT_INLINING_ID, position.InliningId());
RecordRelocInfo(RelocInfo::DEOPT_REASON, static_cast<int>(reason));
RecordRelocInfo(RelocInfo::DEOPT_ID, id);
}
« no previous file with comments | « src/assembler.h ('k') | src/compilation-info.h » ('j') | src/crankshaft/hydrogen.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698