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

Unified Diff: src/interpreter/source-position-table.cc

Issue 1947403002: [interpreter] Introduce bytecode generation pipeline. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebase Created 4 years, 7 months 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
« no previous file with comments | « src/interpreter/source-position-table.h ('k') | src/log.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/interpreter/source-position-table.cc
diff --git a/src/interpreter/source-position-table.cc b/src/interpreter/source-position-table.cc
index 99a865b84ef6344dae6620ffbd62459d60080dfe..65bfa20ac779921997f0b1fa7859a7965f0b81a9 100644
--- a/src/interpreter/source-position-table.cc
+++ b/src/interpreter/source-position-table.cc
@@ -115,53 +115,34 @@ void DecodeEntry(ByteArray* bytes, int* index, PositionTableEntry* entry) {
} // namespace
-void SourcePositionTableBuilder::AddStatementPosition(size_t bytecode_offset,
- int source_position) {
+void SourcePositionTableBuilder::AddPosition(size_t bytecode_offset,
+ int source_position,
+ bool is_statement) {
int offset = static_cast<int>(bytecode_offset);
- AddEntry({offset, source_position, true});
-}
-
-void SourcePositionTableBuilder::AddExpressionPosition(size_t bytecode_offset,
- int source_position) {
- int offset = static_cast<int>(bytecode_offset);
- AddEntry({offset, source_position, false});
+ AddEntry({offset, source_position, is_statement});
}
void SourcePositionTableBuilder::AddEntry(const PositionTableEntry& entry) {
- // Don't encode a new entry if this bytecode already has a source position
- // assigned.
- if (candidate_.bytecode_offset == entry.bytecode_offset) {
- if (entry.is_statement) candidate_ = entry;
- return;
- }
-
- CommitEntry();
- candidate_ = entry;
-}
-
-void SourcePositionTableBuilder::CommitEntry() {
- if (candidate_.bytecode_offset == kUninitializedCandidateOffset) return;
- PositionTableEntry tmp(candidate_);
+ PositionTableEntry tmp(entry);
SubtractFromEntry(tmp, previous_);
EncodeEntry(bytes_, tmp);
- previous_ = candidate_;
+ previous_ = entry;
- if (candidate_.is_statement) {
+ if (entry.is_statement) {
LOG_CODE_EVENT(isolate_, CodeLinePosInfoAddStatementPositionEvent(
- jit_handler_data_, candidate_.bytecode_offset,
- candidate_.source_position));
+ jit_handler_data_, entry.bytecode_offset,
+ entry.source_position));
}
LOG_CODE_EVENT(isolate_, CodeLinePosInfoAddPositionEvent(
- jit_handler_data_, candidate_.bytecode_offset,
- candidate_.source_position));
+ jit_handler_data_, entry.bytecode_offset,
+ entry.source_position));
#ifdef ENABLE_SLOW_DCHECKS
- raw_entries_.push_back(candidate_);
+ raw_entries_.push_back(entry);
#endif
}
Handle<ByteArray> SourcePositionTableBuilder::ToSourcePositionTable() {
- CommitEntry();
if (bytes_.empty()) return isolate_->factory()->empty_byte_array();
Handle<ByteArray> table = isolate_->factory()->NewByteArray(
« no previous file with comments | « src/interpreter/source-position-table.h ('k') | src/log.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698