|
From: andypugh <no...@gi...> - 2026-05-24 18:52:42
|
Branch: refs/heads/master Home: https://github.com/LinuxCNC/linuxcnc Commit: f24653f7f9e516b8260d4c6417303d779cf9a788 https://github.com/LinuxCNC/linuxcnc/commit/f24653f7f9e516b8260d4c6417303d779cf9a788 Author: Luca Toniolo <107...@us...> Date: 2026-05-24 (Sun, 24 May 2026) Changed paths: M src/emc/tp/tp.c Log Message: ----------- tp: reduce trajectory planner stack frames (fixes #4049) Mark tpHandleBlendArc and the four tpCreate*Blend functions noinline to prevent the queue-add chain (tpAdd{Line,Circle,RigidTap} -> tpHandleBlendArc -> tpCreate*Blend) from collapsing into one stack frame. Aggressive inlining accumulated multiple 1704-byte TC_STRUCTs plus BlendGeom3 and BlendParameters in the same frame, producing 5-6 KB frames under RTAI gcc and triggering -Wframe-larger-than warnings, especially with UBSan (-fsanitize=undefined,bool,float-cast-overflow) enabled. The blend creation path runs once per G-code segment at queue time, not per servo cycle, so the lost inlining cost is negligible. After the change tpHandleBlendArc drops from 2752 to 1904 bytes (gcc 14 -O2 uspace) and all frames in tp.c stay below the 2048-byte default warning threshold under both stock and UBSan builds. Commit: 34c07071bf3d9bbe21e968b47e1558dc26299f64 https://github.com/LinuxCNC/linuxcnc/commit/34c07071bf3d9bbe21e968b47e1558dc26299f64 Author: andypugh <an...@bo...> Date: 2026-05-24 (Sun, 24 May 2026) Changed paths: M src/emc/tp/tp.c Log Message: ----------- Merge pull request #4055 from grandixximo/fix/4049-tp-frame-size tp: reduce trajectory planner stack frames (fixes #4049) Compare: https://github.com/LinuxCNC/linuxcnc/compare/0524539a0efe...34c07071bf3d To unsubscribe from these emails, change your notification settings at https://github.com/LinuxCNC/linuxcnc/settings/notifications |