12.07.2015 Views

RealView 编译工具编译器参考指南 - ARM Information Center

RealView 编译工具编译器参考指南 - ARM Information Center

RealView 编译工具编译器参考指南 - ARM Information Center

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

编 译 器 特 有 的 功 能}{}for (k = 0; k < n; k++){float sum = 0.0f;/* #pragma unroll */for(j = 0; j < n; j++)sum += src1[i][j] * src2[j][k];dest[i][k] = sum;}在 此 示 例 中 , 编 译 器 没 有 正 常 完 成 其 循 环 分 析 , 因 为 src2 是 以 src2[j][k] 进 行索 引 的 , 而 循 环 是 按 相 反 顺 序 嵌 套 的 , 即 , j 位 于 k 内 部 。 如 果 在 示 例 中 取 消#pragma unroll 注 释 , 编 译 器 将 继 续 展 开 循 环 四 次 。如 果 目 的 是 增 加 大 小 不 是 4 的 倍 数 的 矩 阵 ( 例 如 n * n 矩 阵 ), 则 可 以 改 用#pragma unroll (m), 其 中 , m 是 某 个 值 , 以 使 n 是 m 的 整 数 倍 。另 请 参 阅• 第 2-48 页 的 --diag_warning=optimizations• 第 2-94 页 的 -Onum• 第 2-97 页 的 -Otime• 第 2-127 页 的 --vectorize, --no_vectorize• #pragma unroll_completely• 《 编 译 器 用 户 指 南 》 中 第 5-4 页 的 优 化 循 环 。4.6.24 #pragma unroll_completely此 编 译 指 示 指 示 编 译 器 完 全 展 开 循 环 。 仅 当 编 译 器 可 以 确 定 循 环 包 含 的 迭 代 次数 时 , 它 才 有 效 。注 意使 用 #pragma unroll_completely 可 以 展 开 向 量 化 和 非 向 量 化 循 环 。 即 , #pragmaunroll_completely 适 用 于 --no_vectorize 和 --vectorize。用 法使 用 -O3 -Otime 进 行 编 译 时 , 如 果 编 译 器 认 为 展 开 循 环 比 较 有 利 , 则 会 自 动 将 其展 开 。 可 以 使 用 此 编 译 指 示 请 求 编 译 器 完 全 展 开 未 自 动 完 全 展 开 的 循 环 。<strong>ARM</strong> DUI 0348BC Copyright © 2007-2009 <strong>ARM</strong> Limited. All rights reserved. 4-69ID090708Non-Confidential, Unrestricted Access

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!