---
title: 特性描述
description: "编译器插件框架旨在帮助开发者降低开发成本，基于编译能力的相关工具开发者只需开发一次，即可在多个不同编译器框架上落地。同时编译器插件框架作为开发平台，也提供对公共能力的支持与维护。编译器插件框架采用代理模式，由服务端和客户端两个关键组件构成。插件服务端专注于承载插件逻辑，允许开发者基于相对中立的MLIR及我们提供的一系列插件API进行开发，使开发者能将关注点聚焦于工具的设计逻辑上。服务端与不同编译器的客户端对接，通过跨进程通信传递IR数据与操作，将插件逻辑转换映射，并最终在客户端编译器上执行，从而实现了一份代码可以在多个编译器上落地的目的。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/hgcc/hist-hgcc/kunpenghgcc_06_0050.html
sourcePath: /source/zh/kunpengdevkithistory/hgcc/hist-hgcc/kunpenghgcc_06_0050.html
indexId: 71a3835376442df9af2c21589a80f6c6aba71ad016b3a82e5f0f349815d4c75471
---
# 特性描述

编译器插件框架旨在帮助开发者降低开发成本，基于编译能力的相关工具开发者只需开发一次，即可在多个不同编译器框架上落地。同时编译器插件框架作为开发平台，也提供对公共能力的支持与维护。编译器插件框架采用代理模式，由服务端和客户端两个关键组件构成。插件服务端专注于承载插件逻辑，允许开发者基于相对中立的MLIR及我们提供的一系列插件API进行开发，使开发者能将关注点聚焦于工具的设计逻辑上。服务端与不同编译器的客户端对接，通过跨进程通信传递IR数据与操作，将插件逻辑转换映射，并最终在客户端编译器上执行，从而实现了一份代码可以在多个编译器上落地的目的。

插件使用者只需要下载所需插件的库文件和校验文件，通过框架的配置文件即可与编译器客户端联合使能。插件客户端将作为GCC/LLVM Plugin进行加载，具有不需要修改GCC编译器源代码即可实现新功能的优势，使得用户能够更加灵活和便捷地使用插件，同时享受框架支持与维护的各种公共能力。
