[EXT_EP-10852] Restrict parameter to inlined function causes software pipelined loop to have a loop carried dependency Created: 22/Jun/22 Updated: 03/Dec/24 Resolved: 22/Jul/24 |
|
Status: | Fixed |
Project: | Embedded Software & Tools |
Component/s: | None |
Affects Version/s: | None |
Fix Version/s: | None |
Type: | Bug | Priority: | Medium |
Reporter: | TI User | Assignee: | TI User |
Resolution: | Fixed | Votes: | 0 |
Remaining Estimate: | Not Specified | ||
Time Spent: | Not Specified | ||
Original Estimate: | Not Specified |
Product: | Code Generation Tools |
Internal ID: | CODEGEN-10115 |
Forum URL: | https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/81/t/1111294 |
Found In Release: | C6000_8.2.0 C6000_8.3.0 C7000_4.0.0.STS C7000_4.1.0.LTS |
Fix In Release: | C7000_5.0.0.LTS* C7000_4.1.2.LTS* C6000_8.3.14* |
Affected Platform/Device: | default |
Workaround: | No practical workaround |
Description |
When handling inline functions, whether explicitly marked inline by the user or auto-inlined by the optimizer, the optimizer would sometimes lose track of the restrict keyword. This particular bug would only show up if at least one of the inline function's declared parameters was a restrict-qualified pointer, in which case the generated assembly code would be sub-optimal. This was particularly noticable for software-pipelined loops, where loops could have a worse loop-carried dependence than they should have, and in fact sometimes worse than if the restrict keyword was removed from the source code. |