From b8f117dd32aae6d2d8108ba101961d00df123e4f Mon Sep 17 00:00:00 2001
From: Paul Sokolovsky <pfalcon@users.sourceforge.net>
Date: Mon, 2 Jun 2014 19:39:15 +0300
Subject: [PATCH] py: For optimization level -O3 and higher, remove lineno info
 from bytecode.

---
 py/emitbc.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/py/emitbc.c b/py/emitbc.c
index cfaea7c88..841dd4aab 100644
--- a/py/emitbc.c
+++ b/py/emitbc.c
@@ -352,6 +352,10 @@ STATIC void emit_bc_adjust_stack_size(emit_t *emit, int delta) {
 STATIC void emit_bc_set_source_line(emit_t *emit, int source_line) {
     //printf("source: line %d -> %d  offset %d -> %d\n", emit->last_source_line, source_line, emit->last_source_line_offset, emit->bytecode_offset);
 #if MICROPY_ENABLE_SOURCE_LINE
+    if (mp_optimise_value >= 3) {
+        // If we compile with -O3, don't store line numbers.
+        return;
+    }
     if (source_line > emit->last_source_line) {
         uint bytes_to_skip = emit->bytecode_offset - emit->last_source_line_offset;
         uint lines_to_skip = source_line - emit->last_source_line;
-- 
GitLab