国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

llvm向用戶拋出warning、error信息

這篇具有很好參考價(jià)值的文章主要介紹了llvm向用戶拋出warning、error信息。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1、拋出error信息并終止程序

使用DiagnosticInfoUnsupported可以向用戶拋出error信息并且終止程序,效果如同report_fatal_error、Error。后端用法如下:

void xxxx::reportErrorMsg(const MachineFunction &MF)const {
  const Function &F = MF.getFunction();
  // Diagnostic information for unsupported feature in backend.
  F.getContext().diagnose(DiagnosticInfoUnsupported{F, "report msg."});
}

2、優(yōu)化pass中拋出警告信息之OptimizationRemark

使用時(shí)clang得加上-Rpass=name,llc得加上–pass-remarks=name才行,后端用法如下:

#include "llvm/Analysis/OptimizationRemarkEmitter.h"
 
void getAnalysisUsage(AnalysisUsage &AU) const override {
    AU.addRequired<OptimizationRemarkEmitterWrapperPass>();
    MachineFunctionPass::getAnalysisUsage(AU);
 }
void xxx::reportWarningMsg(const MachineFunction &MF)const {
  auto *ORE = &getAnalysis<OptimizationRemarkEmitterWrapperPass>().getORE();
  const Function &F = MF.getFunction();
  // Diagnostic information for applied optimization remarks
  OptimizationRemark R(DEBUG_TYPE, "replace-spill-register", &F);
  R << "report msg";
  ORE->emit(R);
}

3、machine ir拋信息之DiagnosticInfoMIRParser

該接口同樣支持DS_Error,DS_Warning,DS_Remark和DS_Note 4種方式,后端用法如下:

#include "llvm/IR/DiagnosticInfo.h"
#include "llvm/Support/SourceMgr.h"
void xxx::reportWarningMsg(const MachineFunction &MF)const {
  const Function &F = MF.getFunction();
  // Diagnostic information for machine IR parser.
  F.getContext().diagnose(DiagnosticInfoMIRParser(
      DS_Warning,
      SMDiagnostic(
          DEBUG_TYPE, SourceMgr::DK_Warning, "report msg")));
}

4、AsmParser之Warning

基本用法如下:

XXXAsmParser &Parser;
void Warning(SMLoc L, const Twine &Msg) { Parser.Warning(L, Msg); }

5、MCContext之reportWarning

基本用法如下:

MCContext &Context;
void MCContext::reportWarning(SMLoc Loc, const Twine &Msg)
Context.reportWarning(MCxxx.getLoc(), Msg);

6、其它類型的信息

包括DiagnosticInfoInlineAsm,DiagnosticInfoResourceLimit,DiagnosticInfoStackSize,DiagnosticInfoOptimizationBase,DiagnosticInfoIROptimization以及debug,Profileing,remarks等。文章來源地址http://www.zghlxwxcb.cn/news/detail-612627.html

  1. 其中l(wèi)lvm_unreachable為開發(fā)者使用,發(fā)布時(shí)用戶不可見,所看到的信息為segment fatal。
  2. assert由于存在判斷開銷,一般也不在發(fā)布中開啟。

7、用例如何檢查report_fatal_error

  1. RUN命令需要使用not,用法如下:
// RUN: not %clang --target=xx -mcpu=xxx -O3 -c %s -o - 2>&1 | FileCheck %s --check-prefix=expected-error
....
// expected-error: xxxx
  1. 使用-fsyntax-only -verify,用法如下:
// RUN: %clang_cc1 -triple xxx  -target-feature xx -fsyntax-only -verify %s
// expected-warning{{xxxxxxxx}} expected-error{{xxxxxxxxxxxxxxx}}

到了這里,關(guān)于llvm向用戶拋出warning、error信息的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Unity Image(RawImage) 實(shí)現(xiàn)按軸心放大縮小,序列化存儲(chǔ)軸心信息,實(shí)現(xiàn)編譯器窗口保存軸心

    Unity Image(RawImage) 實(shí)現(xiàn)按軸心放大縮小,序列化存儲(chǔ)軸心信息,實(shí)現(xiàn)編譯器窗口保存軸心

    工作時(shí)分配給我的要實(shí)現(xiàn)的功能,寫的時(shí)候遇到挺多的坑的,在此記錄一下 放大縮小的效果 2.編譯器擴(kuò)展窗口記錄 1.打開WSC/保存圖片軸心工具,在Image位置掛在需要保存軸心的圖像,輸出name作為key,并在Scene窗口中直接拖動(dòng)軸心確定位置(不建議在Inspector中手動(dòng)輸入軸心修改

    2024年02月14日
    瀏覽(18)
  • QT使用MSVC編譯器報(bào)錯(cuò):Project ERROR: Cannot run compiler ‘cl‘以及后續(xù)問題解決

    QT使用MSVC編譯器報(bào)錯(cuò):Project ERROR: Cannot run compiler ‘cl‘以及后續(xù)問題解決

    記錄一次qtcreator工程使用MSVC創(chuàng)建報(bào)錯(cuò)“ Project ERROR: Cannot run compiler ‘cl’ ”,沒辦法運(yùn)行編譯器cl。 只顯示 qmake配置文件 不出現(xiàn)工程文件, 在qtcreator安裝目錄下的MSVC2017確實(shí)并未找到cl.exe文件,于是下載了everything搜索軟件,在電腦上找到了VSstudio的安裝目錄下MSVC2017編譯器下

    2024年02月05日
    瀏覽(32)
  • Java on VS Code 8月更新|反編譯器用戶體驗(yàn)優(yōu)化、新 Maven 項(xiàng)目工作流、代碼高亮穩(wěn)定性提升

    Java on VS Code 8月更新|反編譯器用戶體驗(yàn)優(yōu)化、新 Maven 項(xiàng)目工作流、代碼高亮穩(wěn)定性提升

    作者:Nick Zhu 排版:Alan Wang 大家好,歡迎來到 Visual Studio Code for Java 的 8 月更新!在這篇博客中,我們將為您提供有關(guān)反編譯器支持的更多改進(jìn)。此外,我們將展示如何創(chuàng)建沒有原型的 Maven 項(xiàng)目以及一項(xiàng)重要錯(cuò)誤修復(fù)。讓我們開始吧! 上一篇博客中將強(qiáng)大的 Fernflower 反編譯

    2024年02月10日
    瀏覽(25)
  • C++輸出編譯器名稱和版本以及編譯器位數(shù)、C/C++常見編譯器

    C++輸出編譯器名稱和版本以及編譯器位數(shù)、C/C++常見編譯器

    常見的C/C++編譯器主要包括以下幾種: GCC (GNU Compiler Collection):GCC是一個(gè)廣泛使用的編譯器套件,支持多種編程語言,包括C、C++、Objective-C等。它具有強(qiáng)大的優(yōu)化能力和跨平臺(tái)支持,并且被廣泛應(yīng)用于各種操作系統(tǒng)和開發(fā)環(huán)境。 Clang :Clang是基于LLVM的編譯器前端,支持C、

    2024年02月13日
    瀏覽(20)
  • python在線編譯器搭建,python在線編譯器源碼

    python在線編譯器搭建,python在線編譯器源碼

    本篇文章給大家談?wù)刾ython在線編譯器搭建,以及python在線編譯器源碼,希望對(duì)各位有所幫助,不要忘了收藏本站喔。 1. PyCharm集成開發(fā)環(huán)境 2. PyCharm的下載與安裝 3. Pycharm的使用 3.1 創(chuàng)建Python項(xiàng)目 3.2 創(chuàng)建子目錄 3.3 創(chuàng)建Python文件 3.4 切換解釋器 3.5 常用快捷鍵 4. Pycharm常用配置

    2024年03月25日
    瀏覽(24)
  • 編譯器(Compiler)及C/C++編譯器安裝(c+安裝)

    編譯器(Compiler)及C/C++編譯器安裝(c+安裝)

    目錄 一、常用編程語言的編譯器(compiler) 概述 二、GCC、MinGW、MinGW-w64 、TDM-GCC、Cygwin、MSYS、MSYS2的區(qū)別 三、MinGW-w64編譯器套件下載及安裝 四、MinGW-w64安裝后,windows環(huán)境變量配置(設(shè)置) 五、編譯器的運(yùn)行及其與開發(fā)環(huán)境的關(guān)系、編譯器的來源 ? ? ? ?機(jī)器語言是一種計(jì)算機(jī)指

    2024年02月07日
    瀏覽(27)
  • 探索Kotlin K2編譯器和Java編譯器的功能和能力

    文章首發(fā)地址 Kotlin K2編譯器是Kotlin語言的編譯器,負(fù)責(zé)將Kotlin源代碼轉(zhuǎn)換為Java字節(jié)碼或者其他目標(biāo)平臺(tái)的代碼。K2編譯器是Kotlin語言的核心組件之一,它的主要功能是將Kotlin代碼編譯為可在JVM上運(yùn)行的字節(jié)碼。 編譯過程: Kotlin K2編譯器將Kotlin源代碼作為輸入,并經(jīng)過詞法分

    2024年02月11日
    瀏覽(23)
  • 【C語言】--編譯及編譯器

    【C語言】--編譯及編譯器

    夫?qū)W須靜也,才須學(xué)也;非學(xué)無以廣才,非志無以成學(xué) 個(gè)人主頁:【??個(gè)人主頁】 系列專欄:【??系列專欄】 C語言一直以來都是初入編程的小白們的必修課,作為程序員必學(xué)語言之一,C語言自然有屬于它的奧秘,接下來就由我來帶領(lǐng)大家走進(jìn)C語言的世界吧?????? 1、

    2024年02月13日
    瀏覽(25)
  • 前端框架編譯器之模板編譯

    前端框架編譯器之模板編譯

    編譯原理:是計(jì)算機(jī)科學(xué)的一個(gè)分支,研究如何將 高級(jí)程序語言 轉(zhuǎn)換為 計(jì)算機(jī)可執(zhí)行的目標(biāo)代碼 的技術(shù)和理論。 高級(jí)程序語言:Python、Java、JavaScript、TypeScript、C、C++、Go 等。 計(jì)算機(jī)可執(zhí)行的目標(biāo)代碼:機(jī)器碼、匯編語言、字節(jié)碼、目標(biāo)代碼等。 編譯器 (Compiler):是一種將

    2024年04月28日
    瀏覽(25)
  • 編譯原理課程設(shè)計(jì)--C語言編譯器

    編譯原理課程設(shè)計(jì)--C語言編譯器

    源程序1: 源程序1詞法分析結(jié)果: 與程序1語法分析結(jié)果(部分) 源程序1四元式: 源程序1優(yōu)化后的四元式: action-goto表(部分) 文件目錄: (1)掌握語義分析過程,即語法制導(dǎo)翻譯過程。 (2)在語法分析的LR分析程序中的基礎(chǔ)上添加程序,進(jìn)行語義分析,生成源程序的四

    2024年02月08日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包