10.07.2015 Views

MPLAB® C30 C 编译器用户指南

MPLAB® C30 C 编译器用户指南

MPLAB® C30 C 编译器用户指南

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

MPLAB ® <strong>C30</strong> 用 户 指 南表 3-9: 特 定 的 优 化 选 项 ( 续 )选 项定 义-fgcse执 行 全 局 公 共 子 表 达 式 消 除 。 这 会 同 时 执 行 全 局 常 量 和 复 制 传播 。-fgcse-lm使 能 -fgcse-lm 时 , 全 局 公 共 子 表 达 式 消 除 将 试 图 移 动 仅 能被 向 其 中 存 储 破 坏 的 装 载 。 这 允 许 将 包 含 装 载 / 存 储 序 列 的 循环 改 变 为 循 环 外 的 装 载 , 以 及 循 环 内 的 复 制 / 装 载 。-fgcse-sm当 使 能 -fgcse-sm 时 , 将 在 公 共 子 表 达 式 消 除 后 运 行 存 储 移动 。 这 试 图 将 存 储 移 出 循 环 。 当 将 这 个 选 项 与 -fgcse-lm 一起 使 用 时 , 包 含 装 载 / 存 储 序 列 的 循 环 可 改 变 为 循 环 前 的 装 载和 循 环 后 的 存 储 。-fmove-all-movables 强 制 将 循 环 内 所 有 不 可 变 的 计 算 移 出 循 环 。-fno-defer-pop-fno-peephole-fno-peephole2-foptimizeregister-move-fregmove每 次 函 数 调 用 时 , 总 是 在 函 数 一 返 回 时 就 弹 出 函 数 的 参 数 。 编译 器 通 常 允 许 几 个 函 数 调 用 的 参 数 累 积 在 堆 栈 中 , 并 将 所 有 参数 一 次 弹 出 堆 栈 。禁 止 特 定 于 机 器 的 窥 孔 (peephole) 优 化 。 窥 孔 优 化 发 生 在编 译 过 程 中 的 不 同 点 。 -fno-peephole 禁 止 对 机 器 指 令 进 行窥 孔 优 化 , 而 -fno-peephole2 禁 止 高 级 窥 孔 优 化 。 要 完 全禁 止 窥 孔 优 化 , 要 同 时 使 用 这 两 个 选 项 。试 图 重 新 分 配 move 指 令 中 的 寄 存 器 编 号 , 并 作 为 其 他 简 单 指令 的 操 作 数 来 增 加 关 联 的 寄 存 器 数 量 。-fregmove 和 -foptimize-register-moves 是 相 同 的 优化 。-freduce-all-givs 强 制 循 环 中 的 所 有 一 般 归 纳 变 量 降 低 强 度 。这 些 选 项 可 能 生 成 更 好 或 更 差 的 代 码 ; 其 结 果 在 很 大 程 度 上 取决 于 源 代 码 中 循 环 的 结 构 。-frename-registers 试 图 通 过 使 用 寄 存 器 分 配 后 余 下 的 寄 存 器 来 避 免 经 过 调 度 的 代码 中 的 假 相 关 性 。 这 种 优 化 对 于 有 许 多 寄 存 器 的 处 理 器 比 较 有用 。 但 它 可 能 使 调 试 无 法 进 行 , 因 为 变 量 将 不 会 存 储 在 固 定 的寄 存 器 中 。-frerun-cse-afterloop在 执 行 循 环 优 化 后 , 重 新 运 行 公 共 子 表 达 式 消 除 。-frerun-loop-opt 运 行 循 环 优 化 两 次 。-fschedule-insns 试 图 对 指 令 重 新 排 序 , 以 消 除 dsPIC 写 - 后 - 读(Read-After-Write) 停 顿 ( 详 情 请 参 阅 《dsPI<strong>C30</strong>F 系 列 参考 手 册 》)。 一 般 可 提 高 性 能 , 而 不 会 影 响 代 码 长 度 。-fschedule-insns2 类 似 于 -fschedule-insns, 但 要 求 在 进 行 寄 存 器 分 配 后 再执 行 一 次 指 令 调 度 。-fstrength-reduce 执 行 降 低 循 环 强 度 和 删 除 迭 代 变 量 优 化 。DS51284C_CN 第 44 页© 2005 Microchip Technology Inc.

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

Saved successfully!

Ooh no, something went wrong!