分类目录归档:未分类

Tablegen Language Tutorial

Tablegen Language Tutorial

很难想象,网络上竟然搜索不到可以称为"教程"的Tablegen资料. 唯一可靠的资料是官方的ProgRef, 作为一个Reference, 它是非常合格的, 详尽而精确, 但是如果把它作为教程来阅读, 则有一些缺点:

  1. 过于详尽, 即便是一些不太重要的特性,也需要用完整精确的内容来描述.
  2. 过于严谨, 即便是一些简单的特性,也需要用严格的方式来描述,比如 EBNF 风格的 syntax notation,
Read More

Lit and FileCheck

Lit And FileCheck

LitFileCheck 是 LLVM 测试中常用的工具, 尽管二者功能上是完全独立的,但是搭配起来使用会显得更加方便.

Lit

Lit总的来说仅仅是一个 test-launcher, 它的主要功能就是发现测试,执行测试,收集结果.

"发现测试"主要依赖于lit.cfg(或lit.site.cfg)文件标记来实现, … Read More

比较运算符, Min, Max, Sort 和 Order

惭愧,突然发现又是没有blog的一年。这一年不断在尝试搞大新闻,写点大东西,到现在也没憋出来。倒是又在学习新东西的过程中看到了一些零碎的小知识,很有意思.

很巧,这个也是和比较运算符相关的,和一年前的blog竟然有所重合。

还是先上结论: 当需要为类型T定义比较运算符时,所有运算符最好保证语义整体一致
* 一般来说,这很容易达到,我们只需要实现operator<(lhs,rhs),即可引申定义出其余几个比较运算符.
* 定义operator<=!(rhs < lhs)
* 定义operator>rhs Read More