Skip to content

Commit a06a97e

Browse files
authored
Merge pull request #1934 from dhalbert/vm-computed-goto
Turn on MICROPY_OPT_COMPUTED_GOTO for 5x CPU-bound speedup
2 parents 541c2a7 + ba1b36a commit a06a97e

File tree

52 files changed

+233
-249
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+233
-249
lines changed

ports/atmel-samd/Makefile

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,12 +111,18 @@ else
111111
# -finline-limit can shrink the image size.
112112
# -finline-limit=80 or so is similar to not having it on.
113113
# There is no simple default value, though.
114-
ifeq ($(INTERNAL_FLASH_FILESYSTEM),1)
115-
CFLAGS += -finline-limit=50
114+
115+
# Do a default shrink for small builds.
116+
ifndef CFLAGS_INLINE_LIMIT
117+
ifeq ($(CIRCUITPY_SMALL_BUILD),1)
118+
CFLAGS_INLINE_LIMIT = 50
119+
endif
116120
endif
121+
117122
ifdef CFLAGS_INLINE_LIMIT
118123
CFLAGS += -finline-limit=$(CFLAGS_INLINE_LIMIT)
119124
endif
125+
120126
CFLAGS += -flto
121127
endif
122128

ports/atmel-samd/boards/arduino_mkr1300/mpconfigboard.mk

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ USB_PID = 0x8053
44
USB_PRODUCT = "Arduino MKR1300"
55
USB_MANUFACTURER = "Arduino"
66

7+
CHIP_VARIANT = SAMD21G18A
8+
CHIP_FAMILY = samd21
9+
710
INTERNAL_FLASH_FILESYSTEM = 1
811
LONGINT_IMPL = NONE
912
CIRCUITPY_SMALL_BUILD = 1
10-
11-
CHIP_VARIANT = SAMD21G18A
12-
CHIP_FAMILY = samd21
13+
SUPEROPT_GC = 0

ports/atmel-samd/boards/arduino_mkrzero/mpconfigboard.mk

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ USB_PID = 0x8050
44
USB_PRODUCT = "Arduino MKRZero"
55
USB_MANUFACTURER = "Arduino"
66

7+
CHIP_VARIANT = SAMD21G18A
8+
CHIP_FAMILY = samd21
9+
710
INTERNAL_FLASH_FILESYSTEM = 1
811
LONGINT_IMPL = NONE
912
CIRCUITPY_SMALL_BUILD = 1
1013

11-
CHIP_VARIANT = SAMD21G18A
12-
CHIP_FAMILY = samd21
14+
SUPEROPT_GC = 0

ports/atmel-samd/boards/arduino_zero/mpconfigboard.mk

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ USB_PID = 0x824D
44
USB_PRODUCT = "Arduino Zero"
55
USB_MANUFACTURER = "Arduino"
66

7+
CHIP_VARIANT = SAMD21G18A
8+
CHIP_FAMILY = samd21
9+
710
INTERNAL_FLASH_FILESYSTEM = 1
811
LONGINT_IMPL = NONE
912
CIRCUITPY_SMALL_BUILD = 1
1013

11-
CHIP_VARIANT = SAMD21G18A
12-
CHIP_FAMILY = samd21
14+
SUPEROPT_GC = 0

ports/atmel-samd/boards/bast_pro_mini_m0/mpconfigboard.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ USB_PID = 0xBAB3
44
USB_PRODUCT = "Bast Pro Mini M0"
55
USB_MANUFACTURER = "Electronic Cats"
66

7+
CHIP_VARIANT = SAMD21E18A
8+
CHIP_FAMILY = samd21
9+
710
INTERNAL_FLASH_FILESYSTEM = 1
811
LONGINT_IMPL = NONE
912
CIRCUITPY_SMALL_BUILD = 1
10-
11-
CHIP_VARIANT = SAMD21E18A
12-
CHIP_FAMILY = samd21

ports/atmel-samd/boards/capablerobot_usbhub/mpconfigboard.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ USB_PID = 0xEDB3
44
USB_PRODUCT = "Programmable USB Hub"
55
USB_MANUFACTURER = "Capable Robot Components"
66

7+
CHIP_VARIANT = SAMD51G19A
8+
CHIP_FAMILY = samd51
9+
710
QSPI_FLASH_FILESYSTEM = 1
811
EXTERNAL_FLASH_DEVICE_COUNT = 1
912
EXTERNAL_FLASH_DEVICES = GD25Q16C
@@ -13,6 +16,3 @@ LONGINT_IMPL = MPZ
1316
CIRCUITPY_AUDIOBUSIO = 0
1417
# No touch on SAMD51 yet
1518
CIRCUITPY_TOUCHIO = 0
16-
17-
CHIP_VARIANT = SAMD51G19A
18-
CHIP_FAMILY = samd51

ports/atmel-samd/boards/catwan_usbstick/mpconfigboard.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ USB_PID = 0xBAB2
44
USB_PRODUCT = "CatWAN USBStick"
55
USB_MANUFACTURER = "Electronic Cats"
66

7+
CHIP_VARIANT = SAMD21E18A
8+
CHIP_FAMILY = samd21
9+
710
INTERNAL_FLASH_FILESYSTEM = 1
811
LONGINT_IMPL = NONE
912
CIRCUITPY_SMALL_BUILD = 1
10-
11-
CHIP_VARIANT = SAMD21E18A
12-
CHIP_FAMILY = samd21

ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.mk

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ USB_PID = 0x8019
44
USB_PRODUCT = "CircuitPlayground Express"
55
USB_MANUFACTURER = "Adafruit Industries LLC"
66

7+
CHIP_VARIANT = SAMD21G18A
8+
CHIP_FAMILY = samd21
9+
710
SPI_FLASH_FILESYSTEM = 1
811
EXTERNAL_FLASH_DEVICE_COUNT = 2
912
EXTERNAL_FLASH_DEVICES = "S25FL216K, GD25Q16C"
@@ -14,8 +17,8 @@ CIRCUITPY_DISPLAYIO = 0
1417
CIRCUITPY_FREQUENCYIO = 0
1518
CIRCUITPY_I2CSLAVE = 0
1619

17-
CHIP_VARIANT = SAMD21G18A
18-
CHIP_FAMILY = samd21
20+
SUPEROPT_GC = 0
21+
CFLAGS_INLINE_LIMIT = 55
1922

2023
# Include these Python libraries in firmware.
2124
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
@@ -24,11 +27,3 @@ FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_HID
2427
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_LIS3DH
2528
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
2629
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Thermistor
27-
28-
# Tweak inlining depending on language.
29-
ifeq ($(TRANSLATION), zh_Latn_pinyin)
30-
CFLAGS_INLINE_LIMIT = 25
31-
RELEASE_NEEDS_CLEAN_BUILD = 1
32-
else
33-
CFLAGS_INLINE_LIMIT = 55
34-
endif

ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.mk

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,23 @@ USB_PID = 0x8019
44
USB_PRODUCT = "CircuitPlayground Express with Crickit libraries"
55
USB_MANUFACTURER = "Adafruit Industries LLC"
66

7+
CHIP_VARIANT = SAMD21G18A
8+
CHIP_FAMILY = samd21
9+
710
SPI_FLASH_FILESYSTEM = 1
811
EXTERNAL_FLASH_DEVICE_COUNT = 2
912
EXTERNAL_FLASH_DEVICES = "S25FL216K, GD25Q16C"
10-
# Turn off longints for Crickit build to make room for additional frozen libs.
11-
LONGINT_IMPL = NONE
1213

14+
# Turn off features and optimizations for Crickit build to make room for additional frozen libs.
15+
LONGINT_IMPL = NONE
1316
CIRCUITPY_DISPLAYIO = 0
1417
CIRCUITPY_PIXELBUF = 0
1518
CIRCUITPY_FREQUENCYIO = 0
1619
CIRCUITPY_I2CSLAVE = 0
1720

18-
CHIP_VARIANT = SAMD21G18A
19-
CHIP_FAMILY = samd21
20-
21-
# Tweak inlining depending on language.
22-
ifeq ($(TRANSLATION), zh_Latn_pinyin)
23-
CFLAGS_INLINE_LIMIT = 23
24-
RELEASE_NEEDS_CLEAN_BUILD = 1
25-
else
21+
SUPEROPT_GC = 0
2622
CFLAGS_INLINE_LIMIT = 55
27-
endif
23+
2824

2925
# Include these Python libraries in firmware.
3026
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice

ports/atmel-samd/boards/cp32-m4/mpconfigboard.mk

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,15 @@ USB_PID = 0x8021
44
USB_PRODUCT = "CP32-M4"
55
USB_MANUFACTURER = "Nadda-Reel Company LLC"
66

7+
CHIP_VARIANT = SAMD51J20A
8+
CHIP_FAMILY = samd51
9+
710
QSPI_FLASH_FILESYSTEM = 1
811
EXTERNAL_FLASH_DEVICE_COUNT = 1
912
EXTERNAL_FLASH_DEVICES = "W25Q128JV_PM"
1013

11-
# No I2S on SAMD51G
14+
CIRCUITPY_PS2IO = 1
15+
# No I2S on SAMD51G.
1216
CIRCUITPY_AUDIOBUSIO = 0
13-
# No touch on SAMD51 yet
17+
# No touch on SAMD51 yet.
1418
CIRCUITPY_TOUCHIO = 0
15-
16-
CHIP_VARIANT = SAMD51J20A
17-
CHIP_FAMILY = samd51
18-
19-
CIRCUITPY_PS2IO = 1

0 commit comments

Comments
 (0)