circuitpython/py
Scott Shawcroft dd71ae10b9
Slim down stack frames
This reduces the stack frame size of mp_builtin___import__ by
limiting the support path length of files from 256 to 96. This
function can be called recursively for nested imports so it adds up.

Also reduce mp_execute_bytecode (vm.c) from 206 a bc call to 124.
This too is recursive and adds up. It is reduced by preventing
some inlining. It may decrease performance slightly when importing
and unpacking.

Adds two new scripts for debugging. One is used from gdb to print
frame sizes in a backtrace. The other prints what pcs use a
particular stack offset. This helps find infrequently used stack
space.

Fixes #8053.
2023-06-06 16:20:47 -07:00
..
argcheck.c runtime: Add mp_arg_validate_float_range 2023-05-04 07:23:48 -05:00
asmarm.c Merge tag 'v1.16' 2021-06-18 10:54:19 -05:00
asmarm.h Merge tag 'v1.16' 2021-06-18 10:54:19 -05:00
asmbase.c Merge MicroPython 1.12 into CircuitPython 2021-05-03 14:01:18 -07:00
asmbase.h Merge MicroPython 1.12 into CircuitPython 2021-05-03 14:01:18 -07:00
asmthumb.c fix typos (partial) detected by codepell 2023-03-18 22:17:02 +07:00
asmthumb.h Merge tag 'v1.16' 2021-06-18 10:54:19 -05:00
asmx64.c py/asmx64: Support use of top 8 regs in src_r64 argument. 2021-05-20 23:43:25 +10:00
asmx64.h Merge MicroPython 1.13 into CircuitPython 2021-05-04 18:06:33 -07:00
asmx86.c Merge MicroPython 1.13 into CircuitPython 2021-05-04 18:06:33 -07:00
asmx86.h Merge MicroPython 1.13 into CircuitPython 2021-05-04 18:06:33 -07:00
asmxtensa.c Merge MicroPython 1.12 into CircuitPython 2021-05-03 14:01:18 -07:00
asmxtensa.h Merge MicroPython 1.13 into CircuitPython 2021-05-04 18:06:33 -07:00
bc0.h Merge MicroPython 1.13 into CircuitPython 2021-05-04 18:06:33 -07:00
bc.c Improve iMX RT performance 2023-03-14 12:30:58 -07:00
bc.h Explicitly ignore unused variables (fixes #6158) 2022-03-15 22:33:10 -07:00
binary.c Conditionalize LTO 2022-05-27 12:59:54 -07:00
binary.h Merge MicroPython 1.12 into CircuitPython 2021-05-03 14:01:18 -07:00
builtin.h Merge tag 'v1.18' 2022-02-15 12:36:26 -06:00
builtinevex.c Conditionalize LTO 2022-05-27 12:59:54 -07:00
builtinhelp.c Conditionalize LTO 2022-05-27 12:59:54 -07:00
builtinimport.c Conditionalize LTO 2022-05-27 12:59:54 -07:00
circuitpy_defns.mk synthio: Finish implementing Math blocks 2023-05-17 16:32:20 -05:00
circuitpy_mkenv.mk refactor common port specific Makefile code 2022-11-18 23:00:28 +05:30
circuitpy_mpconfig.h Slim down stack frames 2023-06-06 16:20:47 -07:00
circuitpy_mpconfig.mk Add PicoDVI support 2023-04-19 15:14:02 -07:00
compile.c fix typos (partial) detected by codepell 2023-03-18 22:17:02 +07:00
compile.h Merge MicroPython 1.12 into CircuitPython 2021-05-03 14:01:18 -07:00
dynruntime.h Merge tag 'v1.18' 2022-02-15 12:36:26 -06:00
dynruntime.mk all: Remove MICROPY_OPT_CACHE_MAP_LOOKUP_IN_BYTECODE. 2021-09-16 16:04:03 +10:00
emit.h Merge MicroPython 1.12 into CircuitPython 2021-05-03 14:01:18 -07:00
emitbc.c remove lib from exludes, fix all remaining typos 2023-03-23 13:59:08 +07:00
emitcommon.c Merge MicroPython 1.10 into CircuitPython 2021-04-21 15:59:17 -07:00
emitglue.c Uncomment or remove debugging changes 2022-07-08 12:53:25 -04:00
emitglue.h Merge MicroPython 1.12 into CircuitPython 2021-05-03 14:01:18 -07:00
emitinlinethumb.c Merge MicroPython 1.14 into CircuitPython 2021-05-11 15:07:40 -07:00
emitinlinextensa.c Merge MicroPython 1.14 into CircuitPython 2021-05-11 15:07:40 -07:00
emitnarm.c py/emitnative: Add support for return/break/continue in try and with. 2018-09-04 14:31:28 +10:00
emitnative.c remove lib from exludes, fix all remaining typos 2023-03-23 13:59:08 +07:00
emitnthumb.c py/emitnative: Add support for return/break/continue in try and with. 2018-09-04 14:31:28 +10:00
emitnx64.c py/emitnative: Add support for return/break/continue in try and with. 2018-09-04 14:31:28 +10:00
emitnx86.c Merge MicroPython 1.12 into CircuitPython 2021-05-03 14:01:18 -07:00
emitnxtensa.c py/emitnative: Add support for return/break/continue in try and with. 2018-09-04 14:31:28 +10:00
emitnxtensawin.c Merge MicroPython 1.12 into CircuitPython 2021-05-03 14:01:18 -07:00
enum.c Improve type validation errors messages, especially for pins 2023-01-10 15:02:55 -05:00
enum.h core: Allow enum types to specify additional fields in the object 2023-05-21 13:22:48 -05:00
formatfloat.c fix typos (partial) detected by codepell 2023-03-18 22:17:02 +07:00
formatfloat.h Add license to some obvious files. 2020-07-06 19:16:25 +01:00
frozenmod.c Merge tag 'v1.18' 2022-02-15 12:36:26 -06:00
frozenmod.h Merge tag 'v1.18' 2022-02-15 12:36:26 -06:00
gc_long_lived.c Initial broadcom port for Raspberry Pi 2021-11-22 14:54:44 -08:00
gc_long_lived.h Introduce a long lived section of the heap. 2018-01-24 10:33:46 -08:00
gc.c Fix for #2204 2023-05-15 21:35:16 +01:00
gc.h Add two stage reset for BLE 2022-05-12 13:20:44 -07:00
genlast.py run updated pre-commit 2023-02-01 13:38:41 +05:30
grammar.h Merge MicroPython 1.13 into CircuitPython 2021-05-04 18:06:33 -07:00
lexer.c Conditionalize LTO 2022-05-27 12:59:54 -07:00
lexer.h Merge tag 'v1.17' into merge-1.17 2021-10-15 08:20:54 -05:00
makecompresseddata.py fix typos (partial) detected by codepell 2023-03-18 22:17:02 +07:00
makemoduledefs.py codeformat: Fix handling of ** 2021-04-30 15:30:13 -05:00
makeqstrdata.py run updated pre-commit 2023-02-01 13:38:41 +05:30
makeqstrdefs.py fix display of the 'host not found' message 2022-12-01 19:46:17 -06:00
maketranslationdata.py run updated pre-commit 2023-02-01 13:38:41 +05:30
makeversionhdr.py Move git command to update necessary tags to submodule 2023-04-25 16:05:20 -06:00
malloc.c pico w: add ssl module 2022-10-05 13:12:43 -04:00
map.c Merge tag 'v1.18' 2022-02-15 12:36:26 -06:00
misc.h pico w: add ssl module 2022-10-05 13:12:43 -04:00
mkenv.mk Always use python3 2021-10-15 15:11:21 -05:00
mkrules.cmake py/mkrules.cmake: Set frozen preprocessor defs early. 2021-12-18 00:05:18 +11:00
mkrules.mk fix typos (partial) detected by codepell 2023-03-18 22:17:02 +07:00
modarray.c Merge MicroPython v1.11 into CircuitPython 2021-04-26 15:47:41 -07:00
modbuiltins.c save about 112 bytes 2022-10-09 19:22:39 -04:00
modcmath.c Merge MicroPython 1.13 into CircuitPython 2021-05-04 18:06:33 -07:00
modcollections.c codeformat 2021-04-19 22:22:44 -07:00
modgc.c codeformat 2021-04-19 22:22:44 -07:00
modio.c Merge tag 'v1.18' 2022-02-15 12:36:26 -06:00
modmath.c Use a function to raise ZeroDivisionError, consistent string 2022-11-30 14:39:30 -06:00
modmicropython.c Conditionalize LTO 2022-05-27 12:59:54 -07:00
modstruct.c Conditionalize LTO 2022-05-27 12:59:54 -07:00
modsys.c Merge tag 'v1.18' 2022-02-15 12:36:26 -06:00
modthread.c Conditionalize LTO 2022-05-27 12:59:54 -07:00
moduerrno.c Conditionalize LTO 2022-05-27 12:59:54 -07:00
mpconfig.h Improve iMX RT performance 2023-03-14 12:30:58 -07:00
mperrno.h Merge tag 'v1.17' into merge-1.17 2021-10-15 08:20:54 -05:00
mphal.h Merge MicroPython 1.14 into CircuitPython 2021-05-11 15:07:40 -07:00
mpprint.c Make %p include the 0x prefix 2021-08-29 11:36:29 -05:00
mpprint.h Merge tag 'v1.17' into merge-1.17 2021-10-15 08:20:54 -05:00
mpstate.c Add license to some obvious files. 2020-07-06 19:16:25 +01:00
mpstate.h pico w: add ssl module 2022-10-05 13:12:43 -04:00
mpthread.h Merge MicroPython 1.13 into CircuitPython 2021-05-04 18:06:33 -07:00
mpz.c Merge tag 'v1.18' 2022-02-15 12:36:26 -06:00
mpz.h Merge tag 'v1.18' 2022-02-15 12:36:26 -06:00
nativeglue.c Fix up all natmod examples 2021-05-08 20:17:16 -05:00
nativeglue.h Fix up all natmod examples 2021-05-08 20:17:16 -05:00
nlr.c codeformat 2021-04-19 22:22:44 -07:00
nlr.h Merge MicroPython v1.15 into CircuitPython 2021-05-12 17:51:42 -07:00
nlraarch64.c Merge tag 'v1.16' 2021-06-18 10:54:19 -05:00
nlrpowerpc.c Merge MicroPython 1.12 into CircuitPython 2021-05-03 14:01:18 -07:00
nlrsetjmp.c Add license to some obvious files. 2020-07-06 19:16:25 +01:00
nlrthumb.c Use returns_twice attribute to preserve regs in nlrthumb nlr_push() 2022-12-20 22:18:43 -05:00
nlrx64.c Merge tag 'v1.16' 2021-06-18 10:54:19 -05:00
nlrx86.c Merge MicroPython 1.13 into CircuitPython 2021-05-04 18:06:33 -07:00
nlrxtensa.c codeformat 2021-04-19 22:22:44 -07:00
obj.c Improve type validation errors messages, especially for pins 2023-01-10 15:02:55 -05:00
obj.h Improve iMX RT performance 2023-03-14 12:30:58 -07:00
objarray.c Fix memoryview.cast over sliced memoryview 2023-05-18 13:26:50 -07:00
objarray.h Merge MicroPython 1.14 into CircuitPython 2021-05-11 15:07:40 -07:00
objattrtuple.c Rename EXTENDED_FIELDS -> MP_TYPE_EXTENDED_FIELDS 2021-07-12 06:57:59 -05:00
objbool.c Merge tag 'v1.17' into merge-1.17 2021-10-15 08:20:54 -05:00
objboundmeth.c Rename EXTENDED_FIELDS -> MP_TYPE_EXTENDED_FIELDS 2021-07-12 06:57:59 -05:00
objcell.c codeformat 2021-04-19 22:22:44 -07:00
objclosure.c Rename EXTENDED_FIELDS -> MP_TYPE_EXTENDED_FIELDS 2021-07-12 06:57:59 -05:00
objcomplex.c Use a function to raise ZeroDivisionError, consistent string 2022-11-30 14:39:30 -06:00
objdeque.c Conditionalize LTO 2022-05-27 12:59:54 -07:00
objdict.c Improve iMX RT performance 2023-03-14 12:30:58 -07:00
objenumerate.c Merge tag 'v1.17' into merge-1.17 2021-10-15 08:20:54 -05:00
objexcept.c fix typos (partial) detected by codepell 2023-03-18 22:17:02 +07:00
objexcept.h Fix several places where an exception could be chained wrongly 2023-02-10 09:06:47 -06:00
objfilter.c Merge tag 'v1.17' into merge-1.17 2021-10-15 08:20:54 -05:00
objfloat.c Use a function to raise ZeroDivisionError, consistent string 2022-11-30 14:39:30 -06:00
objfun.c Improve iMX RT performance 2023-03-14 12:30:58 -07:00
objfun.h Merge tag 'v1.18' 2022-02-15 12:36:26 -06:00
objgenerator.c Fix several places where an exception could be chained wrongly 2023-02-10 09:06:47 -06:00
objgenerator.h Add license to some obvious files. 2020-07-06 19:16:25 +01:00
objgetitemiter.c Merge tag 'v1.17' into merge-1.17 2021-10-15 08:20:54 -05:00
objint_longlong.c Use a function to raise ZeroDivisionError, consistent string 2022-11-30 14:39:30 -06:00
objint_mpz.c Use a function to raise ZeroDivisionError, consistent string 2022-11-30 14:39:30 -06:00
objint.c re-use an error message 2022-11-30 14:39:34 -06:00
objint.h Merge MicroPython 1.13 into CircuitPython 2021-05-04 18:06:33 -07:00
objlist.c Conditionalize LTO 2022-05-27 12:59:54 -07:00
objlist.h Separate out mp_obj_list_insert for use in display.Group 2021-02-27 21:13:55 +01:00
objmap.c Merge tag 'v1.17' into merge-1.17 2021-10-15 08:20:54 -05:00
objmodule.c don't explicitly register ulab here 2023-02-17 09:21:50 -06:00
objmodule.h Merge tag 'v1.18' 2022-02-15 12:36:26 -06:00
objnamedtuple.c Conditionalize LTO 2022-05-27 12:59:54 -07:00
objnamedtuple.h Merge tag 'v1.17' into merge-1.17 2021-10-15 08:20:54 -05:00
objnone.c Rename EXTENDED_FIELDS -> MP_TYPE_EXTENDED_FIELDS 2021-07-12 06:57:59 -05:00
objobject.c Conditionalize LTO 2022-05-27 12:59:54 -07:00
objpolyiter.c Rename EXTENDED_FIELDS -> MP_TYPE_EXTENDED_FIELDS 2021-07-12 06:57:59 -05:00
objproperty.c Improve iMX RT performance 2023-03-14 12:30:58 -07:00
objproperty.h Enable squeezing property storage in flash 2022-05-03 08:48:53 -05:00
objrange.c Merge some messages 2022-11-30 14:39:47 -06:00
objreversed.c Merge tag 'v1.17' into merge-1.17 2021-10-15 08:20:54 -05:00
objset.c Conditionalize LTO 2022-05-27 12:59:54 -07:00
objsingleton.c Rename EXTENDED_FIELDS -> MP_TYPE_EXTENDED_FIELDS 2021-07-12 06:57:59 -05:00
objslice.c Merge some messages 2022-11-30 14:39:47 -06:00
objstr.c Simplify argument checking to reduce translated strings 2022-11-07 12:37:11 -06:00
objstr.h Merge tag 'v1.17' into merge-1.17 2021-10-15 08:20:54 -05:00
objstringio.c Conditionalize LTO 2022-05-27 12:59:54 -07:00
objstringio.h Add license to some obvious files. 2020-07-06 19:16:25 +01:00
objstrunicode.c Improve type validation errors messages, especially for pins 2023-01-10 15:02:55 -05:00
objtraceback.c objtraceback: merge with an existing message in objtype 2021-08-23 20:23:23 -05:00
objtraceback.h add traceback object 2021-08-04 12:10:57 +05:30
objtuple.c Conditionalize LTO 2022-05-27 12:59:54 -07:00
objtuple.h update espnow api 2023-01-23 23:51:10 +05:30
objtype.c fix typos (partial) detected by codepell 2023-03-18 22:17:02 +07:00
objtype.h Merge tag 'v1.17' into merge-1.17 2021-10-15 08:20:54 -05:00
objzip.c Merge tag 'v1.17' into merge-1.17 2021-10-15 08:20:54 -05:00
opmethods.c Rename mp_type_binary_op -> mp_type_get_binary_op_slot 2021-07-12 07:03:52 -05:00
pairheap.c py/pairheap: Properly unlink node on pop and delete. 2020-03-26 01:21:04 +11:00
pairheap.h py/pairheap: Add helper function to initialise a new node. 2020-03-26 01:21:04 +11:00
parse.c Conditionalize LTO 2022-05-27 12:59:54 -07:00
parse.h Merge MicroPython 1.14 into CircuitPython 2021-05-11 15:07:40 -07:00
parsenum.c Use a standard validator 2022-11-30 14:39:33 -06:00
parsenum.h Add license to some obvious files. 2020-07-06 19:16:25 +01:00
parsenumbase.c codeformat 2021-04-19 22:22:44 -07:00
parsenumbase.h Add license to some obvious files. 2020-07-06 19:16:25 +01:00
persistentcode.c save about 112 bytes 2022-10-09 19:22:39 -04:00
persistentcode.h Merge tag 'v1.18' 2022-02-15 12:36:26 -06:00
profile.c Merge tag 'v1.18' 2022-02-15 12:36:26 -06:00
profile.h Merge MicroPython 1.12 into CircuitPython 2021-05-03 14:01:18 -07:00
proto.c Conditionalize LTO 2022-05-27 12:59:54 -07:00
proto.h Rename mp_type_protocol -> mp_type_get_protocol_slot 2021-07-12 07:04:04 -05:00
py.cmake add traceback object 2021-08-04 12:10:57 +05:30
py.mk use python based msgfmt 2023-02-13 11:22:35 +05:30
pystack.c Improve iMX RT performance 2023-03-14 12:30:58 -07:00
pystack.h Improve iMX RT performance 2023-03-14 12:30:58 -07:00
qstr.c Improve iMX RT performance 2023-03-14 12:30:58 -07:00
qstr.h Merge MicroPython 1.14 into CircuitPython 2021-05-11 15:07:40 -07:00
qstrdefs.h Remove unused static qstrs 2022-11-30 12:06:15 -06:00
reader.c Merge MicroPython 1.13 into CircuitPython 2021-05-04 18:06:33 -07:00
reader.h Add license to some obvious files. 2020-07-06 19:16:25 +01:00
repl.c restore a redundant NULL-comparison, it silences compiler diagnostics 2021-06-18 11:24:39 -05:00
repl.h Add license to some obvious files. 2020-07-06 19:16:25 +01:00
ringbuf.c update espnow api 2023-01-23 23:51:10 +05:30
ringbuf.h update espnow api 2023-01-23 23:51:10 +05:30
runtime0.h Merge MicroPython 1.12 into CircuitPython 2021-05-03 14:01:18 -07:00
runtime_utils.c WIP: after merge; before testing 2018-07-11 16:45:30 -04:00
runtime.c Slim down stack frames 2023-06-06 16:20:47 -07:00
runtime.h runtime: Add mp_arg_validate_float_range 2023-05-04 07:23:48 -05:00
scheduler.c refactor traceback handling 2021-11-10 20:23:33 +05:30
scope.c Merge MicroPython 1.14 into CircuitPython 2021-05-11 15:07:40 -07:00
scope.h remove lib from exludes, fix all remaining typos 2023-03-23 13:59:08 +07:00
sequence.c fix typos (partial) detected by codepell 2023-03-18 22:17:02 +07:00
showbc.c Merge tag 'v1.18' 2022-02-15 12:36:26 -06:00
smallint.c Add license to some obvious files. 2020-07-06 19:16:25 +01:00
smallint.h Merge tag 'v1.17' into merge-1.17 2021-10-15 08:20:54 -05:00
stackctrl.c Guard GCC13 pragma 2023-04-28 11:28:48 -07:00
stackctrl.h Merge tag 'v1.16' 2021-06-18 10:54:19 -05:00
stream.c When reading data from a file into a str, check if it's utf-8 2022-08-12 08:25:27 -05:00
stream.h Move mp_get_stream non-inline 2021-05-05 11:00:35 -05:00
unicode.c Merge MicroPython 1.13 into CircuitPython 2021-05-04 18:06:33 -07:00
unicode.h Add license to some obvious files. 2020-07-06 19:16:25 +01:00
usermod.cmake rp2: Add support for USER_C_MODULES to CMake build system. 2021-03-31 00:26:01 +11:00
vm.c do not chain exceptions to themselves 2023-01-04 08:40:20 -06:00
vmentrytable.h Merge MicroPython 1.14 into CircuitPython 2021-05-11 15:07:40 -07:00
vstr.c Merge MicroPython v1.11 into CircuitPython 2021-04-26 15:47:41 -07:00
warning.c Merge MicroPython v1.11 into CircuitPython 2021-04-26 15:47:41 -07:00