Skip to content

Commit dc5565a

Browse files
authored
Merge pull request #6436 from dhalbert/judicious-lto
LTO: Use -flto and -flto-partition only as needed
2 parents 67e9fb1 + 947f564 commit dc5565a

File tree

8 files changed

+18
-28
lines changed

8 files changed

+18
-28
lines changed

ports/atmel-samd/Makefile

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ $(echo PERIPHERALS_CHIP_FAMILY=$(PERIPHERALS_CHIP_FAMILY))
124124
ifeq ($(DEBUG), 1)
125125
CFLAGS += -ggdb3 -Og -Os
126126
# You may want to disable -flto if it interferes with debugging.
127-
CFLAGS += -flto -flto-partition=none
127+
CFLAGS += -flto -flto-partition=one
128128
# You may want to enable these flags to make setting breakpoints easier.
129129
# CFLAGS += -fno-inline -fno-ipa-sra
130130
ifeq ($(CHIP_FAMILY), samd21)
@@ -147,10 +147,11 @@ else
147147
CFLAGS += -finline-limit=$(CFLAGS_INLINE_LIMIT)
148148
endif
149149

150-
CFLAGS += -flto -flto-partition=none
150+
CFLAGS += -flto
151151

152152
ifeq ($(CIRCUITPY_FULL_BUILD),0)
153153
CFLAGS += --param inline-unit-growth=15 --param max-inline-insns-auto=20
154+
CFLAGS += -flto-partition=one
154155
endif
155156

156157
ifdef CFLAGS_BOARD
@@ -167,7 +168,8 @@ CFLAGS += \
167168
-mcpu=cortex-m0plus \
168169
-msoft-float \
169170
-mfloat-abi=soft \
170-
-DSAMD21
171+
-DSAMD21 \
172+
-flto-partition=one
171173
endif
172174
ifeq ($(CHIP_FAMILY), samd51)
173175
CFLAGS += \

ports/nrf/Makefile

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,14 +84,21 @@ INC += -I../../lib/mp-readline
8484
INC += -I../../lib/tinyusb/src
8585
INC += -I../../supervisor/shared/usb
8686

87+
ifeq ($(MCU_CHIP),nrf52833)
88+
OPTIMIZATION_FLAGS ?= -Os -flto -flto-partition=one
89+
else
90+
ifeq ($(INTERNAL_FLASH_FILESYSTEM),1)
91+
OPTIMIZATION_FLAGS ?= -Os -flto
92+
endif
93+
endif
94+
8795
#Debugging/Optimization
8896
ifeq ($(DEBUG), 1)
8997
CFLAGS += -ggdb3
9098
OPTIMIZATION_FLAGS = -Og
9199
else
92100
OPTIMIZATION_FLAGS ?= -O2 -fno-inline-functions
93101
CFLAGS += -DNDEBUG -ggdb3
94-
CFLAGS += -flto -flto-partition=none
95102
endif
96103

97104
ifeq ($(NRF_DEBUG_PRINT), 1)

ports/nrf/boards/bluemicro833/mpconfigboard.mk

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,3 @@ CIRCUITPY_VECTORIO = 0
4545
CIRCUITPY_ZLIB = 0
4646

4747
MICROPY_PY_ASYNC_AWAIT = 0
48-
49-
SUPEROPT_GC = 0
50-
SUPEROPT_VM = 0
51-
52-
# Override optimization to keep binary small
53-
OPTIMIZATION_FLAGS = -Os

ports/nrf/boards/microbit_v2/mpconfigboard.mk

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,3 @@ CIRCUITPY_ULAB = 0
2828
CIRCUITPY_USB = 0
2929

3030
MICROPY_PY_ASYNC_AWAIT = 0
31-
32-
# Override optimization to keep binary small
33-
OPTIMIZATION_FLAGS = -Os
34-
SUPEROPT_VM = 0
35-
SUPEROPT_GC = 0

ports/nrf/boards/pca10100/mpconfigboard.mk

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,3 @@ CIRCUITPY_VECTORIO = 0
3535
CIRCUITPY_ZLIB = 0
3636

3737
MICROPY_PY_ASYNC_AWAIT = 0
38-
39-
SUPEROPT_GC = 0
40-
SUPEROPT_VM = 0
41-
42-
# Override optimization to keep binary small
43-
OPTIMIZATION_FLAGS = -Os

ports/nrf/boards/simmel/mpconfigboard.mk

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,3 @@ CIRCUITPY_ZLIB = 0
4646

4747
# Enable micropython.native
4848
#CIRCUITPY_ENABLE_MPY_NATIVE = 1
49-
50-
# Override optimization to keep binary small
51-
OPTIMIZATION_FLAGS = -Os
52-
SUPEROPT_VM = 0
53-
SUPEROPT_GC = 0

ports/nrf/mpconfigport.mk

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ MCU_SERIES = m4
7777
MCU_VARIANT = nrf52
7878
MCU_SUB_VARIANT = nrf52833
7979

80+
# Need the space
81+
SUPEROPT_GC ?= 0
82+
SUPEROPT_VM ?= 0
83+
8084
SD ?= s140
8185
SOFTDEV_VERSION ?= 7.0.1
8286

py/circuitpy_mpconfig.mk

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@ CFLAGS += -DMICROPY_PY_USELECT_SELECT=$(MICROPY_PY_USELECT_SELECT)
5757
CIRCUITPY_AESIO ?= $(CIRCUITPY_FULL_BUILD)
5858
CFLAGS += -DCIRCUITPY_AESIO=$(CIRCUITPY_AESIO)
5959

60-
# TODO: CIRCUITPY_ALARM will gradually be added to
61-
# as many ports as possible
60+
# TODO: CIRCUITPY_ALARM will gradually be added to as many ports as possible
6261
# so make this 1 or CIRCUITPY_FULL_BUILD eventually
6362
CIRCUITPY_ALARM ?= 0
6463
CFLAGS += -DCIRCUITPY_ALARM=$(CIRCUITPY_ALARM)

0 commit comments

Comments
 (0)