TI C64x +上的简单嵌套循环不流水线操作

时间:2015-07-07 13:35:22

标签: c nested-loops texas-instruments pipelining

在C64x +上编译时,以下代码不是流水线操作:

void main ()
{
    int a, b, ar[100] = {0};

    for (a = 0; a < 1000; a++)
        for (b = 0; b < 100; b++)
            ar[b]++;

    while(1);
}

我的IDE(Code Composer v6)为内部循环提供以下消息:“循环无法有效调度,因为它包含复杂的条件表达式。请尝试简化条件。”

问题似乎与嵌套循环有关,但我找不到有关优化这个问题的更多信息。

之前有没有人解决过类似问题?

- 补充资料 -

  • 处理器:TMS320C64x +

  • 编译器:TI v8.0.3

  • 编译器标志: - mv6400 + --abi = eabi -O3 --opt_for_speed = 4 --include_path =“D:/ TI / ccsv6 / tools / compiler / ti-cgt- c6000_8.0.3 / include“--advice:performance -g --issue_remarks --verbose_diagnostics --diag_warning = 225 --gen_func_subsections = on --debug_software_pipeline --gen_opt_info = 2 --gen_profile_info -k --c_src_interlist --asm_listing - output_all_syms

  • 链接器标记: - mv6400 + --abi = eabi -O3 --opt_for_speed = 4 --advice:performance -g --issue_remarks --verbose_diagnostics --diag_warning = 225 - gen_func_subsections = on --debug_software_pipeline --gen_opt_info = 2 --gen_profile_info -k --c_src_interlist --asm_listing --output_all_syms -z -m“dsp.map”-i“D:/ TI / ccsv6 / tools / compiler / ti- cgt-c6000_8.0.3 / lib“-i”D:/TI/ccsv6/tools/compiler/ti-cgt-c6000_8.0.3/include“--reread_libs --warn_sections --xml_link_info =”dsp_linkInfo.xml“--rom_model

1 个答案:

答案 0 :(得分:1)

从编译器标志中删除--gen_profile_info解决了这个问题。我的循环已经是splooped。