---
title: 天秤源码优化工具功能介绍
description: "天秤源码优化工具是一款基于Clang/LLVM的静态代码分析工具，专注于C/C++代码的向量化优化。工具能够自动识别可向量化的循环模式，也支持通过启用x86 Intel intrinsics分析功能，识别x86向量化指令，自动生成优化后的ARM向量化代码，实现代码的自动化改写，帮助开发者快速将代码转换为高效的ARM向量化代码，充分发挥NEON/SVE指令集的性能优势。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevps/development/affinityanalyzer/KunpengDevKitCli_0255.html
sourcePath: /source/zh/kunpengdevps/development/affinityanalyzer/KunpengDevKitCli_0255.html
indexId: 2e16decca7ff3e5405f59bee43b2b6b4443805c7f1f80cb4362b8cff4ad38a8479
---
# 天秤源码优化工具功能介绍

天秤源码优化工具是一款基于Clang/LLVM的静态代码分析工具，专注于C/C++代码的向量化优化。工具能够自动识别可向量化的循环模式，也支持通过启用x86 Intel intrinsics分析功能，识别x86向量化指令，自动生成优化后的ARM向量化代码，实现代码的自动化改写，帮助开发者快速将代码转换为高效的ARM向量化代码，充分发挥NEON/SVE指令集的性能优势。

除本文档介绍的传统CLI方式外，天秤还提供了AI调用方式，可通过自然语言调用天秤源码优化工作流，详情请参见《Kunpeng DevKit AI 用户指南(https://www.hikunpeng.com/document/detail/zh/kunpengdevps/devkitai/usermanual/kunpengDevKitAI_0001.html)》。

工具支持三种运行模式：

- 火焰图扫描模式（推荐）：推荐优先使用火焰图扫描模式，用户可实现对火焰图SVG文件或鲲鹏性能定界工具KSYS分析结果JSON文件中热点函数的提取及扫描分析，能够在最短时间内定位到存在潜在优化空间的函数或代码。
- 函数扫描模式：用户可通过对指定函数进行分析优化，快速定位可向量化的指定函数。
- 文件扫描模式：分为单文件与全项目扫描模式。用户可通过对单个源码文件或全项目进行分析优化，定位源码文件中可向量化的代码。

以上三种运行模式默认扫描的是标量代码，启用x86 Intel intrinsics分析功能后，可支持扫描x86向量化指令。

#### 前提条件

- 已安装天秤源码优化工具。
- 工具为单独压缩包承载（tiancheng-x.x.x-Linux-Kunpeng.tar.gz），请解压后切换至工具目录使用。


#### 命令功能

工具能够自动识别可向量化的循环模式，也支持通过启用x86 Intel intrinsics分析功能，识别x86向量化指令，自动生成优化后的ARM向量化代码，实现代码的自动化改写。


#### 命令格式

```
./tiancheng <subcommand> [options]
```


#### 使用示例

执行以下命令，查看天秤源码优化工具支持的功能信息：
```
./tiancheng -h
```


返回信息如下：

```
OVERVIEW: Tiancheng C/C++ Vectorization Analyzer
USAGE: tiancheng <subcommand> [options]
SUBCOMMANDS:
file              Analyze one input file or all C/C++ files under a project directory
flamegraph        Use an imported flamegraph/hotspot result as the analysis scope
function          Analyze explicitly specified functions
Type "tiancheng <subcommand> --help" to get more help on a specific subcommand.
OPTIONS:
-h/--help                                   Display available commands
--version                                   Display the version of this program
```


**表1 子命令功能说明**

| 子命令 | 功能说明 |
| --- | --- |
| file | 分为单文件与全项目扫描模式。用户可通过对单个源码文件或全项目进行分析优化，定位源码文件或全项目中可向量化的代码，并提供改写建议。 |
| flamegraph | 用户可实现对火焰图SVG和鲲鹏性能定界工具KSYS分析结果JSON中热点函数的提取及扫描分析，能够在最短时间内定位到存在潜在优化空间的函数或代码，并提供改写建议。 |
| function | 用户可通过对指定函数进行分析优化，快速定位可向量化的指定函数，并提供改写建议。 |
