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

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

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,16 @@ USB_PID = 0x0001
44
USB_PRODUCT = "Datalore IP M4"
55
USB_MANUFACTURER = "TG-Boards"
66

7+
CHIP_VARIANT = SAMD51J19A
8+
CHIP_FAMILY = samd51
9+
710
QSPI_FLASH_FILESYSTEM = 1
811
EXTERNAL_FLASH_DEVICE_COUNT = 3
912
EXTERNAL_FLASH_DEVICES = "GD25Q16C, W25Q16JV_IQ, W25Q16JV_IM"
10-
1113
LONGINT_IMPL = MPZ
1214

13-
CHIP_VARIANT = SAMD51J19A
14-
CHIP_FAMILY = samd51
15-
16-
# No touch on SAMD51 yet
17-
CIRCUITPY_TOUCHIO = 0
18-
1915
CIRCUITPY_NETWORK = 1
2016
MICROPY_PY_WIZNET5K = 5500
21-
2217
CIRCUITPY_PS2IO = 1
18+
# No touch on SAMD51 yet
19+
CIRCUITPY_TOUCHIO = 0

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ USB_PID = 0xBAB6
44
USB_PRODUCT = "Escornabot Makech"
55
USB_MANUFACTURER = "Electronic Cats"
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/feather_m0_adalogger/mpconfigboard.mk

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ USB_PID = 0x8015
44
USB_PRODUCT = "Feather M0 Adalogger"
55
USB_MANUFACTURER = "Adafruit Industries LLC"
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/feather_m0_basic/mpconfigboard.mk

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ USB_PID = 0x8015
44
USB_PRODUCT = "Feather M0"
55
USB_MANUFACTURER = "Adafruit Industries LLC"
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/feather_m0_express/mpconfigboard.mk

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,12 @@ USB_PID = 0x8023
44
USB_PRODUCT = "Feather M0 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"
1013
LONGINT_IMPL = MPZ
1114

12-
CHIP_VARIANT = SAMD21G18A
13-
CHIP_FAMILY = samd21
14-
15-
# Tweak inlining depending on language.
16-
ifeq ($(TRANSLATION), zh_Latn_pinyin)
1715
CFLAGS_INLINE_LIMIT = 60
18-
RELEASE_NEEDS_CLEAN_BUILD = 1
19-
endif

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

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ USB_PID = 0x8023
44
USB_PRODUCT = "Feather M0 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,13 +17,8 @@ CIRCUITPY_BITBANGIO = 0
1417
CIRCUITPY_DISPLAYIO = 0
1518
CIRCUITPY_FREQUENCYIO = 0
1619
CIRCUITPY_I2CSLAVE = 0
17-
18-
CHIP_VARIANT = SAMD21G18A
19-
CHIP_FAMILY = samd21
20-
21-
CFLAGS_INLINE_LIMIT = 50
22-
2320
CIRCUITPY_GAMEPAD = 0
21+
CFLAGS_INLINE_LIMIT = 50
2422

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

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ USB_PID = 0x8015
44
USB_PRODUCT = "Feather M0 RFM69"
55
USB_MANUFACTURER = "Adafruit Industries LLC"
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/feather_m0_rfm9x/mpconfigboard.mk

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ USB_PID = 0x8015
44
USB_PRODUCT = "Feather M0 RFM9x"
55
USB_MANUFACTURER = "Adafruit Industries LLC"
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/feather_m0_supersized/mpconfigboard.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ USB_PID = 0x8023
44
USB_PRODUCT = "Feather M0 Supersized"
55
USB_MANUFACTURER = "Dave Astels"
66

7+
CHIP_VARIANT = SAMD21G18A
8+
CHIP_FAMILY = samd21
9+
710
SPI_FLASH_FILESYSTEM = 1
811
EXTERNAL_FLASH_DEVICE_COUNT = 1
912
EXTERNAL_FLASH_DEVICES = "S25FL064L"
1013
LONGINT_IMPL = MPZ
11-
12-
CHIP_VARIANT = SAMD21G18A
13-
CHIP_FAMILY = samd21

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

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,16 @@ USB_PID = 0x8026
44
USB_PRODUCT = "Feather M4 Express"
55
USB_MANUFACTURER = "Adafruit Industries LLC"
66

7-
QSPI_FLASH_FILESYSTEM = 1
7+
CHIP_VARIANT = SAMD51J19A
8+
CHIP_FAMILY = samd51
89

10+
QSPI_FLASH_FILESYSTEM = 1
911
EXTERNAL_FLASH_DEVICE_COUNT = 1
1012
EXTERNAL_FLASH_DEVICES = GD25Q16C
1113
LONGINT_IMPL = MPZ
1214

13-
# No touch on SAMD51 yet
14-
CIRCUITPY_TOUCHIO = 0
15-
16-
CHIP_VARIANT = SAMD51J19A
17-
CHIP_FAMILY = samd51
18-
1915
CIRCUITPY_NETWORK = 1
2016
MICROPY_PY_WIZNET5K = 5500
21-
2217
CIRCUITPY_PS2IO = 1
18+
# No touch on SAMD51 yet
19+
CIRCUITPY_TOUCHIO = 0

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ USB_PID = 0x8023
44
USB_PRODUCT = "Feather RadioFruit Zigbee"
55
USB_MANUFACTURER = "Adafruit Industries LLC"
66

7+
CHIP_VARIANT = SAMR21G18A
8+
CHIP_FAMILY = samd21
9+
710
SPI_FLASH_FILESYSTEM = 1
811
EXTERNAL_FLASH_DEVICE_COUNT = 2
912
EXTERNAL_FLASH_DEVICES = "S25FL216K, GD25Q16C"
@@ -13,6 +16,3 @@ LONGINT_IMPL = MPZ
1316
CIRCUITPY_AUDIOBUSIO = 0
1417
# No DAC on SAMR21G
1518
CIRCUITPY_AUDIOIO = 0
16-
17-
CHIP_VARIANT = SAMR21G18A
18-
CHIP_FAMILY = samd21

0 commit comments

Comments
 (0)