<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[displayMessage的博客]]></title><description><![CDATA[这个博主很黑，基本看不到他]]></description><link>https://blog.youkuaiyun.com/displayMessage</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; displayMessage]]></copyright><item><title><![CDATA[LLVM-High Level Structure-Global Variables]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/118178750</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/118178750</guid><author>displayMessage</author><pubDate>Thu, 24 Jun 2021 17:04:58 +0800</pubDate><description><![CDATA[  全局变量区的内存分配是在编译时期而不是运行时。
  必须初始化全局变量定义。
  可以声明其他转换单元中的全局变量，在这种情况下，它们没有初始化器。
  全局变量可以选择指定链接类型(linkage type)。
  全局变量的定义或声明都放置在明确段，并且可能指定了可选的对齐方式。如果全局变量声明的显式或推断段信息与定义不匹配，其结果是未定义的。
  一个表示全局常量(constant)的变量意味着该变量的内容不会被修改(比较好的实现是将这种全局数据放进可执行文件的只读段)。请注意，需要运行时初始化的]]></description><category></category></item><item><title><![CDATA[MLIR-Code Doc-Operation Definition Specification(ODS)]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/117483688</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/117483688</guid><author>displayMessage</author><pubDate>Thu, 17 Jun 2021 08:37:45 +0800</pubDate><description><![CDATA[  除了mlir::OpC++模板特化的方式，MLIR也支持表驱动的方式去定义操作和数据类型。它的实现是通过TableGen(LLVM 中有介绍)，TableGen即是一种通用语言，也是维护特定领域信息记录的工具。与操作相关的事实被精确地指定到TableGen记录中，TableGen记录将在编译器构建时展开为等价的mlir::Op c++模板特化。
  本手册详细解释了以这种表驱动方式定义操作的所有可用机制。它的目标是成为一个规范而不是教程。后者请参考Quickstart tutorial to addin]]></description><category></category></item><item><title><![CDATA[MLIR-Documentation-Conversion to the LLVM Dialect]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/117394637</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/117394637</guid><author>displayMessage</author><pubDate>Sun, 30 May 2021 21:24:00 +0800</pubDate><description><![CDATA[点点点

]]></description><category></category></item><item><title><![CDATA[MLIR-Code Doc-Tutorials-Defining Dialect Attributes & Types]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/117394783</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/117394783</guid><author>displayMessage</author><pubDate>Sun, 30 May 2021 09:52:01 +0800</pubDate><description><![CDATA[  本文档是为了快速入门方言对MLIR的属性与类型系统的特定扩展。虽然本教学的主要内容集中在对类型的定义，但是对于定于属性来讲，这些指令几乎是相同的。
类型(Types)
  MLIR中的类型(包括 属性，位置，和其他很多东西)都是值类型。这意味着Type的示例是按值传递的，而不是按指针或者引用传递。Typeclass1本身充当内部存储对象的包装器，这个存储对象在一个MLIRContext实例中是唯一的。
定义Type类(Defining the type class)
  根据上面的描述，Type对象在M]]></description><category></category></item><item><title><![CDATA[MLIR-Tutorials-Toy Tutorial]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/117394658</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/117394658</guid><author>displayMessage</author><pubDate>Sun, 30 May 2021 09:34:54 +0800</pubDate><description><![CDATA[玩具语言教程(Toy Tutorial)
第七章：向玩具语言增加一个复合类型(Chapter 7: Adding a Composite Type to Toy)
总结
  在前一章中，我们展示了从Toy语言的编译前端到LLVM IR的端到端编译流。在本章中，我们将扩展Toy语言以支持新的复合结构类型(struct)。
在Toy中定义一个struct(Defining a struct in Toy)
  首先，我们需要定义这种类型在Toy源语言中的接口。通常struct类型的语法如下：
# A struc]]></description><category></category></item><item><title><![CDATA[git的一些配置]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/116981488</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/116981488</guid><author>displayMessage</author><pubDate>Tue, 18 May 2021 16:34:48 +0800</pubDate><description><![CDATA[配置git的一个commit模板
git config --global commit.template /path/to/template
// 可以通过以下命令查看是否配置成功。
git config --list


配置git的一个alias
// 配置一个status参数的别名
git config --global alias.st status
// 可以通过以下命令查看是否配置成功。
git config --list



...]]></description><category></category></item><item><title><![CDATA[MLIR-Code Documentation-Pass Infrastructure(Pass基础设施)]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/116444000</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/116444000</guid><author>displayMessage</author><pubDate>Tue, 11 May 2021 18:50:59 +0800</pubDate><description><![CDATA[代码文档
Pass基础设施
Pass管理器
上面的章节介绍了不同类型的Pass和它们的不变量。本章节介绍Pass管理器的概念，与怎样使用它配置和调度一个Pass管道。与Pass管理器相关的主要有两个类，PassManager与OpPassManager。PassManager类充当最上层的入口点，包含整个Pass管道要用的各种各样的配置。OpPassManager类用于调度Pass运行在指定的嵌套等级。最上层的PassManager也可以作为OpPassManager。
OpPassManager
OpPa]]></description><category></category></item><item><title><![CDATA[git分别在本地master与基于master产生的分支上工作时，可按照以下操作以避免出现不必要的冲突]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/116607675</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/116607675</guid><author>displayMessage</author><pubDate>Mon, 10 May 2021 19:56:01 +0800</pubDate><description><![CDATA[因为老东家用的还是SVN，所以对git的一些操作都还不是很熟悉。最近在处理工作的时候，需要同时对master与基于master产生的分支分别进行操作，担心master的版本超前分支基版本而出现奇怪的现象。在百度找到了说的比较清晰的流程，原址在这里。
防止丢失，在这里重复记录。
git支持很多种工作流程，我们采用的一般是这样，远程创建一个主分支，本地每人创建功能分支，日常工作流程如下：
去自己的工作分支
$ git checkout work
工作
…
提交工作分支的修改
$ git commit -a
回到]]></description><category></category></item><item><title><![CDATA[git指令及其含义]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/116307545</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/116307545</guid><author>displayMessage</author><pubDate>Mon, 10 May 2021 08:59:56 +0800</pubDate><description><![CDATA[git branch
  用于查看本地有多少个分支。

]]></description><category></category></item><item><title><![CDATA[模板函数实例化问题]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/111641557</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/111641557</guid><author>displayMessage</author><pubDate>Thu, 24 Dec 2020 18:06:31 +0800</pubDate><description><![CDATA[描述

问题表述比较复杂，得结合代码来表述，代码组成文件如下(见代码一章节)：

D.h，定义了模板函数，定义了一个纯数据类。整个程序的目的就是为了给这个纯数据类提供个性化的处理
	A.h，声明了一个实际上使用纯数据类的业务类A
	A.cpp，为模板函数提供了模板函数内部的具体实现，一个全局的[disPlayMsg]函数。向外围提供了一个业务类A的业务接口，接口内对模板函数进行了实例化。
	B.h，声明了一个实际上使用纯数据类的业务类B
	B.cpp，为模板函数提供了模板函数内部的具体实现，一个全局的[di]]></description><category></category></item><item><title><![CDATA[Linux-更新yum源]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/99701569</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/99701569</guid><author>displayMessage</author><pubDate>Sun, 18 Aug 2019 09:56:49 +0800</pubDate><description><![CDATA[有做过更新yum源的操作，时间长了就会忘记。
趁着这次要重新做，记录一下过程。
网络源安装：
//进入yum文件存放的路劲
cd /etc/yum.repos.d
//简单粗暴，删除所有文件
rm *
//安装阿里云的yum文件
wget -O /etc/yum.repos.d/CentOS-Base.repo    http://mirrors.aliyun.com/repo/Centos-7....]]></description><category></category></item><item><title><![CDATA[tinyxml2-day02-[class StrPair]]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/93780756</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/93780756</guid><author>displayMessage</author><pubDate>Thu, 27 Jun 2019 11:33:53 +0800</pubDate><description><![CDATA[StrPair类提供了对一个字符串的一些操作，可以将目标字符串存储到类内，通过存储目标字符串的起始地址和目标地址。
另外，StrPair类提供了一个flag，可以通过对flag赋值，来对当前字符串进行相应的操作。
针对xml文件，StrPair类提供了读取标题和内容的函数。（这里不太确定，需要等到后面查看这两个函数的用法才知道，从函数的实现上看，的确是这样的）
StrPair定义如下：
class...]]></description><category></category></item><item><title><![CDATA[CentOS7安装gcc-5.4.0]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/85602701</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/85602701</guid><author>displayMessage</author><pubDate>Thu, 03 Jan 2019 17:14:56 +0800</pubDate><description><![CDATA[下载gcc-5.4.0安装包。
wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.5.0/gcc-4.5.0.tar.gz

解压
tar -zxvf gcc-4.5.0.tar.gz

下载编译依赖项
cd gcc-4.5.0


]]></description><category></category></item><item><title><![CDATA[学习笔记day71-----Win32-编码类型、窗口函数框架]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/81255370</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/81255370</guid><author>displayMessage</author><pubDate>Fri, 27 Jul 2018 22:54:40 +0800</pubDate><description><![CDATA[编码类型、窗口函数框架]]></description><category></category></item><item><title><![CDATA[day71-----C++-Win32-编码类型、窗口函数框架]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/81221128</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/81221128</guid><author>displayMessage</author><pubDate>Thu, 26 Jul 2018 22:55:07 +0800</pubDate><description><![CDATA[编码类型、窗口函数框架]]></description><category></category></item><item><title><![CDATA[day70-----win32-windows的窗口程序框架]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/81173587</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/81173587</guid><author>displayMessage</author><pubDate>Mon, 23 Jul 2018 19:52:32 +0800</pubDate><description><![CDATA[windows的窗口程序框架]]></description><category></category></item><item><title><![CDATA[epoll多路复用-----epoll_create1()、epoll_ctl()、epoll_wait()]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/81151646</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/81151646</guid><author>displayMessage</author><pubDate>Sun, 22 Jul 2018 09:15:12 +0800</pubDate><description><![CDATA[int epoll_create1(int flags);
int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
int epoll_wait(int epfd, struct epoll_event *events,int maxevents, int timeout);]]></description><category></category></item><item><title><![CDATA[简易并发服务器框架]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/81151462</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/81151462</guid><author>displayMessage</author><pubDate>Sun, 22 Jul 2018 08:44:20 +0800</pubDate><description><![CDATA[简易并发服务器框架]]></description><category></category></item><item><title><![CDATA[DMS-linux系统用户登入/登出记录系统]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/81133634</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/81133634</guid><author>displayMessage</author><pubDate>Fri, 20 Jul 2018 15:48:00 +0800</pubDate><description><![CDATA[概述：从linux系统中记录用户登入登出的文件中，读取数据，整理用户登入和登出的时间，和在线的时长，最后写入到oracle数据库。整个程序由客户端和服务端组成。客户端部署在客户机上，用于采集客户机上用户的登入登出信息。服务端部署在可以连接到oracle数据库的主机上，用于整理数据，和向数据库插入数据。 
涉及到的知识点： 
socket网络编程 
动态库的制作 
Makefile文件制作 
pro...]]></description><category></category></item><item><title><![CDATA[学习笔记day68-----oralce-proc，在c/c++中操作数据库的方法]]></title><link>https://blog.youkuaiyun.com/displayMessage/article/details/81132371</link><guid>https://blog.youkuaiyun.com/displayMessage/article/details/81132371</guid><author>displayMessage</author><pubDate>Fri, 20 Jul 2018 14:55:12 +0800</pubDate><description><![CDATA[宿主变量、指示变量、数组变量、sqlca通信区、oraca通信区、proc中使用sql]]></description><category></category></item></channel></rss>