多年研发和团队管理经验,熟悉LLVM、GPU等技术领域,具备公司层面技术管理能力。
作者:snsn1984 从接触LLVM编译器到现在,也有多半年时间了,在这多半年的时间里,也花了不少精力在上面。现在回过头来总结一下在LLVM的学习过程中的一些感悟。
作者:snsn1984 第二天的任务中的LLVM IR的文档(http://llvm.org/docs/LangRef.html)对于初学者来说,看起来一定很费劲,内容繁杂,找不到头绪,看了后边的忘记了前面的,这些都是很正常的。
作者:snsn1984 在第一天的时候,我们简单了解了llvm和clang。今天我们继续对LLVM进行学习。 第一步:学会如何查找LLVM的文档LLVM的文档很多,也很全面,是开源软件中文档比较全面并且比较细致的,这是很难得的一个事情。
作者:snsn1984 开篇语: 学习LLVM的过程是一个漫长而艰巨的过程,需要大量的时间和精力。不仅仅如此,开始的过程也不轻松。一个好的开始就是成功的一半。
作者:snsn1984 之前已经 简单的介绍过怎么样去运行PASS(地址: http://blog.csdn.net/snsn1984/article/details/8160696),并且以hello PASS为例进行了运行,可以输出hello 和函数的名字。
1.But a team’s culture isn’t just the way in which team members writecode or treat one another: it’s a set of shared experiences, ...
大本计算机专业该怎么学习? http://blog.csdn.net/snsn1984/article/details/22252 再看计算机本科该如何学习 http://blog.csdn.net/snsn1984/article/details/3343146 以上两篇文章分别是我以前写的关于讨论计算机专业本科该如何学习的帖子。
2012年对于我来说,是一个充满转折和机会的一年。总结起来,这一年还是收获颇丰,但是也付出了不少,是跌宕起伏的一年。 刚刚进入2012年的时候,我从某世界500强企业离职,仅仅在那里呆了半年多。
从源码目录来看,user model有两块内容bsd-user和linux-user。我主要研究了下linux-user这种情况。 首先要提一下通常容易关注的焦点,linux-user下的函数入口点:/源码目录/linux-user/main.c中的Line:3388 int main(int argc, char **argv, char **envp). 找到了入口函数,就可以根据这个main函数中的调用关系来看看这个情况下的主要执行流程和动作了。
TCG是Tiny Code Generator的简称,它之前是一个后端编译器,现在是作为一个动态翻译器来使用。在QEMU中,它主要用来将虚拟出来的系统的指令转化成真正硬件支持的指令中的从中间代码到硬件支持的机器代码的过程。
最近在研究QEMU,读了一些QEMU的源码,因为涉及的东西比较多,找到的资料又都比较破碎,不太完整。所以将最近的成果总结一下。相比其他的开源软件来说,QEMU源码下面目录比较多,下面就先把这些目录的内容大致整理一下。
作者:snsn1984 官方介绍Clang是LLVM native的一个面向C/C++/Objective-C的编译器,目标是要提供一个编译非常快的编译器。
作者:snsn1984 这里简单介绍下LLVM的源码结构,让大家知道LLVM的每个文件夹都放的是什么内容。 参考文档: http://llvm.org/docs/GettingStarted.html#getting-started llvm/examples 这个目录主要是一些简单例子,演示如何使用LLVM IR 和 JIT。
作者:snsn1984 LLVM的文档挺多,而且都是官方的文档,刚开始接触的时候很容易让人摸不着头脑,这里就简单的介绍下这些文档。希望能给学习LLVM的人提供一些帮助。
作者:snsn1984 LLVM 的Pass框架是LLVM系统的一个很重要的部分。每个Pass都是做优化或者转变的工作,LLVM的优化和转换工作就是由很多个Pass来一起完成的。
本章的主要是写给那些处于非官方管理位置的人。 如果你是积极并且渴望引导一个团队去实现项目的人,那么这个项目的leader就有可能是你。 我们不赞成像管理流水线工人(采取胡萝卜加大棒的方式)一样管理工程师。
作者:snsn1984 阅读了文档《Creating an LLVM Project》(地址:http://llvm.org/docs/Projects.html)之后,自己照着做了一遍,记录一下自己的过程。
堆: C++程序的内存格局通常分为四个区: 1.全局数据区(data area) 2.代码区(code area) 3.栈区(stack area) 4.堆区(即自由存储区)(heap area) 全局变量、静态数据、常量存放在全局数据区,所有类成员函数和非成员函数代码存放在代码区,为运行函数所分配的局部变量、函数参数、返回数据、返回地址等存放在栈区,余下的空间都被作为堆区。
人要常总结才能看到自己的得失,从我调任XXX项目负责人到现在,已经有将近三个月的时间,项目也已经进行了两次发布。期间一直没有时间好好总结,现在回头看看这段时间,自己的得和失还是很多的。
文档地址: http://llvm.org/docs/ProgrammersManual.html 该文档的主要目的: 该文档主要介绍了LLVM源码的一些重要的类和接口,并不打算解释LLVM是什么,LLVM怎么工作,LLVM代码是什么样的。
文档地址:http://llvm.org/docs/LangRef.html LLVM IR的标示符有两种基本类型,全局的和局部的。全局标示符以@开头,局部标示符以%开头。
C++0x: The future of C++ By Alex Allain What is C++0x? C++0x was the working name for the new standard for C++, adding many ...
一个好的团队文化应该是:谦逊、尊重、信任。 对于团队成员的不好的行为,不可以容忍和放纵。但是简单的把人分为好人和坏人是很幼稚的行为,而应该以这个人的行为来划分,什么行为是不好的,什么行为是好的。
作者:snsn1984 在介绍LLVM IR之前,我们需要先了解下LLVM的结构。传统的静态编译器分为三个阶段:前端、优化和后端。 LLVM的三阶段设计是这样的: 这样做的优点是如果需要支持一种新的编程语言,那么我们只需要实现一种新的前端。
You Are a Product MONDAY, DECEMBER 6, 2010 I had a revelation the other day.
You should blog even if you have no readers FRIDAY, JULY 30, 2010 Spencer Fry wrote a great post on "Why entrepreneurs should write.
Introduction 前言 “Engineeringis easy. People are hard.” ——BillCoughran, former senior vice presidentof engineering at Google “做工程容易,做人难。
作者:snsn1984 写在前面的话: 最近接触llvm比较多,在这个上面花了不少的时间。感觉llvm要完全理解透是个很不容易的事情,需要在学习过程中好好的整理下自己的思路。
Welcome to Bionic, Android's small and custom C library for the Android platform.
Zygote Zygote启动是从 /frameworks/base/cmds/app_process/app_main.cpp 中的main()函数开始的。
Android/abi (abi相关代码。ABI:applicationbinary interface,应用程序二进制接口) Android/bionic(bionic C库) Android/bootable(启动引导相关代码) A...
不知不觉中到了年底,马上这一年就要结束了。一直想提笔写写我的2011,但是一直没有勇气,这一年发生了太多的事情,让我有些不忍去回忆。但是该面对的还是要面对的,如果都不能坦然面对,如何去放下心中的包袱? 盘点今年,真的是喜怒哀乐,样样俱全。
近日,因为即将离开目前的工作单位,处于工作交接的阶段,工作不太忙。 又因朋友给介绍了一家公司,做多线程方面的研发,问及我对多线程了解的程度,我坦诚的说了解的不多。
作者联系方式:会飞的鱼 本文来自CSDN博客:http://blog.csdn.net/flyfish30/archive/2008/08/07/2779365.aspx 面向对象的程序设计技术自60年代诞生以来,从刚开始的前卫而又昂贵(指实现和运行的代价)的技术到现在的遍地开花,已经过去了40来年了。
HKEY hKey; LPCTSTR StrKey="HARDWARE//DESCRIPTION//System//CentralProcessor//0"; if (ERROR_SUCCESS==::RegOpenKeyEx(HKEY_LOCAL_MACHINE...
又是将近一年多没有来了,去年离开那家公司后,就一直忙着书稿和论文的事情。一直不断的被各种DEADLINE逼着去做事情,很少有心情去坐下里好好读读书,写写程序。
char sHostName[100]; gethostname(sHostName,sizeof(sHostName)); struct hostent FAR * lpHostEnt=gethostbyname(sHostName); if(lpHostEnt...
Windows Socket 网络编程(二) —— 套接字编程原理作者: 冰点工作室 小鹰 一、客户机/服务器模式在TCP/IP网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Server model)。
2010美国高校计算机系排行榜出炉 2010-04-21 00:31 | 次阅读 | 【已有138条评论】发表评论 关键词:新闻资讯 | 感谢liujiangCE的提供 | 收藏这篇资讯 哪些美国高校的计算机系实力最强?4月20日,公认为最具影响力的《U.S. News》美国大学排行榜出炉,为这个问题提供了最新的权威答案。
来源:百度百科。 Qt是一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。
首先建立一个单文档视图,记得VIEW的父类要选CFORMVIEW。这样的话可以在VIEW的界面中出现一个类似于对话框的东西,然后在上面放上两个对话框和两个编辑框。对两个编辑框创建两个控件变量。
CLR,MFC都是一种界面库,可理解为一个供调用的函数,调用这个函数,就可以写出窗体界面,而无需要自己写很复杂的画法“画”出界面,区别是,MFC库出现的早,并且写出的软件是二进制的,速度快,但由于出现的早,所以使用还是挺麻烦的;CLR出现的迟,在是.net的环境下运行的,优点时,可以使用大量的控件“拖”成想要的窗体,但CLR就像二次调用MFC界面一样,个人认为比较慢,事实上,CLR界面几乎没人用,(常用asp.net于网页)这样的界面本质上是解释型的,正如网页上的界面,比如网页上“xxx”就会解释为一个区。
BYTE nField0,nField1,nField2,nField3; m_ipaddd.GetAddress(nField0,nField1,nField2,nField3); //m_ipadd.
Edit Control控件最常见的用法,一般有有以下几种: 1、 显示默认的字符串; 2、 接受用户输入的字符串。 3、 作为密码框接受用户输入的字符串。
第三步 设置风格 1、 通过第一步和第二步,我们已经创建出了一个有一行并且有四列的内容的REPORT风格的List Control。可是,只是简单的方框中有一行数据而已,我们能不能让它们看起来更漂亮呢?或者我们能不能让它们可以被选取从而让我们可以做一些别的操作呢?当然可以,这一步我们就来看看简单的风格设置。
第二步 创建第一行 1、 在上一节中我们创建了一个列,那我们可以按照同样的方法多创建几个列。在 m_ListCtrl.InsertColumn(0, _T("姓名"), LVCFMT_LEFT, 90); 代码后边添入下列三行代码: m_ListCtrl.
第一步:创建一个列 注:开发平台为VS2008.NET。 1、 创建一个MFC应用程序,选择基于对话框的。 具体步骤如下:文件à新建à项目àVisual C++àMFCàMFC应用程序,在下方名称中输入你自己想要建立的项目名,此处为ListCtrl。
函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include #include int main(void) { char ...
某天被人问到关于合并两个字符串的小程序,没看明白人家的代码错在哪,只是觉得别扭,所以自己写了下。还发现了一些挺有意思的东西。做成了几个完整的小程序。 #includevoid main() { char s1[100],s2[100]; i...
The main topics of the chapter2 are BOOLEAN EXPRESSION,BRANCHING MECHANISMS and LOOPS.