自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SHINING的博客

不忘初心,方得始终。

  • 博客(266)
  • 资源 (7)
  • 收藏
  • 关注

原创 LLVM每日谈之三十四 LLVM IR生成和转换的几条指令

本文将罗列几条关于LLVM IR生成和转换的几条指令,并没有技术含量可言,只是让刚接触LLVM IR的同学,有一个检索和参考作用。文中min.c作为输入。min.cint min(int a , int b) { if (a <b ) return a; return b:}1、从源码生成.bcclang min.c -emit-llvm -c -o min.bc2、从源...

2018-07-14 11:27:31 5035 4

原创 深入研究Clang(十二) 可以观察Clang前端分析阶段性产物的几个命令

Clang作为整个LLVM框架下关于C、C++和Object-C的前端。其大致环节分为词法分析、预处理、语法分析、语义分析、中间代码生成几个环节。我们在阅读和修改Clang的代码的过程中,需要经常的调试代码,观察改动所带来的各个阶段所发生的改变,这就需要时刻了解各个阶段的输出。要了解各个阶段的输出,目前常用有两种方法:1、最朴实最实用但是效率不一定是最高的办法,那就是打log。这是毋庸置疑的。2、...

2018-07-12 13:56:13 2663

原创 LLVM每日谈之外篇 HelloLLVM上海活动之行

 昨天(7月1日)参加了HelloLLVM上海的活动,是HelloLLVM组织的第二次线下活动。第一次活动是6月初在北京举行的,我因故没能参加。这次能参加这个活动,还要特别感谢HelloLLVM的创始人吴伟先生。能让我有机会参与到HelloLLVM上海活动之中,并和大家做一个简单的分享。 HelloLLVM上海的活动,选择了上海张江高科地铁站附近的Vπ咖啡馆,场地本身特别适合技...

2018-07-02 15:18:02 874 2

原创 LLVM每日谈之外篇 工具链到底能火多久

本篇不同于之前所有的篇章,与技术毫无关系,纯属扯淡。算是反思一下业态。中兴被制裁事件之后,忽然之间,花开一地。大大小小的公司都开始在芯片上发力,实干的、吹牛的、投机的、蹭热点的、套钱的等等,不一而足。真的是什么类型都有,似乎马上这个行业就繁荣起来了,至少是表面上繁荣了起来。给了很多非专业人士莫大的鼓励,似乎有了这个劲头,再有三五年,我们就永远不会像今天的中兴那样面对困局。事实什么样,明白人心里都有...

2018-07-02 14:04:47 1083 2

原创 LLVM每日谈之三十三 LLVM的DEBUG宏改名了

根据rL332240提交的申请,LLVM的DEBUG宏将更名为LLVM_DEBUG,原因是为了避免其他工程出现问题。在转换期间,DEBUG宏作为别名依然可以使用。这个更改虽然谈不上什么有技术含量的更新,只是一个更名,但是这个更名却对我们日常的使用影响较大。毕竟,debug宏使用的频率还是很高的。具体修改内容见:rL332240...

2018-07-02 13:58:41 740

原创 LLVM每日谈之三十二 C++ Insights

C++ Insights是一个基于clang的工具,它主要提供代码到代码的转换。它的目标是让屏幕背后发生一些事情变得可见,让我们更好的理解编译器是怎么运作的。列举两个例子,大家就很明白的知道这个工具到底做了什么了。官方例子一:Source:#include <cstdio>#include <vector>int main(){const char arr[10]{2,4,...

2018-07-02 13:56:20 1497

原创 LLVM邮件列表2018年4月内容选辑

缘起:LLVM的邮件列表关注了很久,最闲的时候每篇都读,也回过几篇邮件。忙的时候,可能好几个月不怎么读,积累一大堆未读,只能直接清理了。后来,有人做了llvmweekly,好了很多,每周花点时间看一看,就知道个大概,方便很多。转眼之间,llvmweekly已经做到了200多期,历时4年多了,我从中获益很多。一直在想,除了经常记录点自己学习的感受和零碎的知识点,我还能做点什么?最近忽然有想法,我能不...

2018-05-14 20:59:11 807

原创 LLVM每日谈之三十一 如何读写LLVM的bitcode

LLVM的IR在整个LLVM工程中占据着核心地位,它是整个LLVM三个阶段的中间环节,起着承上启下的作用。如何读写LLVM的bitcode在LLVM的前端和后端都会涉及这个问题,在基于LLVM做一些定制化开发的时候,对LLVM的bitcode也是重中之重。 LLVM的官方文档在这个方面介绍很详细,但是随着LLVM的扩充,官方文档也越来越厚重,有的时候只是简单的想做某个事,可...

2018-05-14 20:56:52 3614

原创 深入研究Clang(十一) 使用libclang遍历AST

之前在本系列的第三篇(深入研究Clang(三) libclang)介绍过libclang,内容相对简单,也没有实际的代码举例。其实,在看libclang的时候,我自己动手写了一个小工具:screader,想取名source code reader的意思。 screader放在了github上很长一段时间了,我一直以为这个资源已经在写第三篇(深入研究Clang(三) libclang)...

2018-05-13 10:55:34 9298 2

原创 LLVM每日谈之三十 在LLVM中定制Alias分析

Alias分析是一个决定两个指针是否指向同一个对象(alias)的过程。这在变量优化的过程中十分重要。近日,Simon Brand写了一篇博客介绍如何在LLVM中定制Alias分析,这篇博客非常简明,并且附上了示例代码,让人可以很快的掌握如何在LLVM中定制Alias分析。其最终目标,也是为了添加一个可以做定制化Alias分析的PASS。这篇博客的地址为:Custom Alias Analysis...

2018-05-12 20:58:34 1467

原创 LLVM每日谈之二十九 面向机器学习的编译器——Glow

当地时间五月三日,Glow开发者在LLVM开发者邮件列表中发布了Glow。邮件地址:[llvm-dev] Thank you from the Glow DevelopersGlow的开源地址:pytorch/glowGlow的论文地址:https://arxiv.org/pdf/1805.00907.pdf根据官方的描述,Glow基于LLVM项目进行了开发,所以在邮件列表里对LLVM的开发者表示...

2018-05-11 20:24:39 2753

原创 LLVM每日谈之二十八 I am leaving llvm

Rafael 于当地时间五月二日宣称离开LLVM社区,在网络引发了广泛的讨论。Rafael 作为LLVM贡献排名第五的资深贡献者,对LLVM社区贡献极大,他一共提交了4,344个节点,占LLVM提交节点总数的2.65%,共提交了157,679行代码。Rafael 离开的根本原因还是社区环境的变化,最终的触发事件是社区与Outreachy的合作。不管怎么说,Rafael 的离开让人觉得惋惜。感谢他一...

2018-05-08 13:28:55 1055

原创 文本分析杂记之二 场景及要点

文本分析的整体大的背景,对于理解文本分析显得至关重要。因为不理解这个大的背景的情况下,过分的聚焦于具体的技术,可能会完全的走偏。尤其是对于我现在这种已经有了具体应用场景的学习者来言,每个层次能做什么,才是最关注的事情。首先谈谈文本分析解决什么问题。(Text Mining 和 Text Analytics在严格的意义上是不一样的。但是在这里探讨的时候,认为是约等的,不特殊说明的情况下不做区分。)文

2018-02-05 11:46:38 818 1

原创 文本分析杂记之一 课程资源

最近因为想分析一些文本,打算研究研究文本分析的相关技术,看看到底能分析到什么程度。之前做编译器相关的时候,关注过自然语言分析这块,但是没有太深入。这两年再看,优质的资料真的很多了,而且很多方向也做的很不错了。之前经常在Coursera | Online Courses From Top Universities. Join for Freewww.coursera.org听课,所以第一时间上去找了

2018-02-05 11:36:48 752

原创 LLVM每日谈之二十七 几个在线编译器资源

几个在线编译器资源:(来源于https://isocpp.org)平时会遇到有点小想法想验证一下,发现手头那台电脑环境不具备,还要折腾一下重新配置,很是烦人。无意间发现了这几个在线的资源,记录下来,留作后用。1、godbolt.org (Clang, GCC, Intel ICC, VC++)2、Wandbox  (Clang, gcc -- includes Boost)3、Online Vis

2017-12-13 09:15:32 1598

原创 LLVM每日谈之二十六 riscv-llvm

说起riscv-llvm,可能一下子让人摸不到头脑,因为有些人没有关注RISC-V。如果从RISC说起,RISC-V, riscv-llvm都会变得更容易理解。RISC就是经常说的精简指令集,这在之前计算机行业的发展过程中起到的作用,怎么形容都不为过了。真正做过编译器相关和CPU相关工作的人,可能对这些有更深的感触。RISC-V简单点来说,就是一个开源版本的RISC,并且由于设计团队包含了很多之前

2017-11-28 09:58:20 4191 1

原创 LLVM每日谈之二十五 Clangd和LSP

1、ClangdClang的Extra Clang Tools中有一个ClangD。按照ClangD的定义,它是对Language Server Protocol的一个具体实现(当然是建立在Clang的基础之上的),目的是为了提供编程语言的一些智能化的特性,比如代码完成、引用查找等,主要面向的终端是C/C++的编辑器。Clangd的官方定义:Clangd is an implementation

2017-11-24 09:33:45 8148

原创 几个常用的技术类型网站

最近常用的几个技术类网站,列下来备忘,也分享给大家。https://slideslive.com会议视频和PPThttp://llvmweekly.org/LLVM周报https://www.coursera.org/公开课平台https://stackoverflow.com技术问答社区https://github.com开源代码库社区http://www.diffblue.com/AI for

2017-10-18 09:26:45 11361 5

原创 C++温故笔记(三)

一、可变数据成员1、我们希望类的数据成员(甚至在const成员函数内)可以修改,这可以将它们声明为mutable来实现。2、可变数据成员永远都不能为const,甚至当它是const对象的成员时也如此。二、static数据成员和static成员函数1、static数据成员独立于该类的任意对象而存在,每个static数据成员是与类关联的对象,并不与该类的对象相关联。2、正如类可以定义共享的static

2017-07-31 21:07:28 1031 1

原创 C++温故笔记(二)

一、多重继承1、多重继承是从多于一个直接基类派生类的能力,多重继承的派生类继承其所有父类的属性。2、在多重继承下,派生类的对象包含每个基类的对象。3、(多重继承)构造函数初始化式只能控制用于初始化基类的值,不能控制基类的构造次序。4、对于多重继承,派生类的指针或引用可以转换为其任意基类的指针或引用。5、当一个类继承于多个基类的时候,那些基类之间没有隐含的关系,不允许使用一个基类的指针访问其他基类的

2017-07-29 11:11:31 996 1

原创 C++温故笔记(一)

从学C++到现在也有十个年头了,一直在用,也一直在不断的研究和学习。最近时间比较宽松,就把之前的一些书籍翻了出来,把基础的东西都又略读了一遍,有了不少的收获。这可能就是所谓的理论和实践的不断循环吧。将略读过程中所做的笔记整理出来,主要是总结和备忘,如果能对他人有所帮助,那就善莫大焉了。注:都是一些基础的东西,没有什么高深的,大牛可以跳过。一、模板和泛型1、模板是C++语言与众不同的特性,是标准库的

2017-07-29 10:57:23 1549 1

原创 人生的又一次转折——写在离职读博之前

本周是我在现在这个公司最后一周了,本周离职流程走完之后,就算是彻底离开了。从加入这家公司到现在,正好是一年半左右,在即将离开的时候,回顾、总结一下这一年半的所得所失,顺便做一次内心的自省。2016年1月份,从上家外企离职,来到现在这家国企,当时没有犹豫、也没有彷徨,在待遇上有所下降,在职位上有所上升,也算是正常的一次跳槽。就算今天再回头去看,也谈不上对或者不对。毕竟是从之前公司的一个项目经理,到这

2017-07-17 10:03:53 6321 1

原创 LLVM每日谈之二十四 Google的ClangMR

ClangMR的论文《Large-Scale Automated Refactoring Using ClangMR》:http://www.hyrumwright.org/papers/icsm2013.pdfClangMR是Goolge的一个工具,严格的说,并不属于Clang家族,是属于基于Clang所构建的一个工具。Google秉承他们一贯的原则,在构建该工具并投入使用之后,将该工具的情况发

2017-04-20 10:57:50 1982

原创 深入研究Clang(十) Clang Static Analyzer简介

Clang Static Analyzer 官网地址:http://clang-analyzer.llvm.org/Clang Static Analyer是一个源码分析工具,它可以发现C、C++和Objective-C程序中的bug。现在Clang Static Analyer既可以作为一个单独的工具使用,也可以集成在Xcode中使用。作为单独的工具使用的时候,可以通过命令行调用,作为一个代码库

2017-03-29 16:27:49 8488 1

转载 LLVM官方文档翻译---- LLVM原子指令与并发指引

英文原文地址:http://llvm.org/docs/Atomics.html译文原文地址:http://blog.csdn.net/wuhui_gdnt/article/details/52485591注:该文章转载已经得到译者授权。---------------------------------------------------------------------------------

2017-03-21 11:34:18 2445

转载 Devirtualization in LLVM and Clang

Devirtualization in LLVM and ClangThis blog post is part of a series of blog posts from students who were funded by the LLVM Foundation to attend the 2016 LLVM Developers' Meeting in San Jose, CA. Ple

2017-03-17 11:05:35 1395

原创 LLVM每日谈之二十三 LLVM/Clang编译Linux内核资料

作者:史宁宁(snsn1984)之前有朋友问到这个问题,是否有使用LLVM/Clang编译Linux内核的,随手找了一些相关资料,在这里贴出来,与大家共享。网址:http://llvm.linuxfoundation.org项目简介:LLVMLinux Project OverviewThis project aims to fully build the Linux kernel using C

2017-03-10 09:36:56 5511

转载 Generate C interface from C++ source code using Clang libtooling

原文地址Generate C interface from C++ source code using Clang libtoolingDec 6, 2016 · 24 minute read · Comments clangllvmCC++I developed a concurrent user-thread library using C++, and was looking for a w

2017-03-09 13:14:35 1553

原创 Apache Beam初探

Apache BeamApache Beam provides an advanced unified programming model, allowing you to implement batch and streaming data processing jobs that can run on any execution engine.Apache Beam is:UNIFIED -

2017-01-17 10:10:30 2532 1

原创 深入研究Clang(九) Clang代码阅读之打log读流程2

继续上一篇,同样的hello.c,同样的执行过程,只不过继续添加了一些log信息,而且对代码进行了更近一步的挖掘。先看输入和输出的log信息(前半部分):shining@shining-VirtualBox:~/llvm-3.9.0/build/bin$ ./clang hello.c -o helloclang/tools/driver/driver.cpp/main()_begin/shin

2017-01-05 11:42:00 3299

原创 深入研究Clang(八) Clang代码阅读之打log读流程1

#includeint main() {  printf("Hello world!\n");}#include "llvm/Support/raw_ostream.h"    llvm::errs() //shining add begin#include "llvm/Support/raw_ostream.h"//shining add end  //shining add begin  ll

2016-12-16 16:30:48 2879

原创 深入研究Clang(七) Clang Lexer代码阅读笔记之Lexer

作者:史宁宁(snsn1984)源码位置:clang/lib/Lexer.cpp源码网络地址:http://clang.llvm.org/doxygen/Lexer_8cpp_source.htmlLexer.cpp这个文件,是Clang这个前端的词法分析器的主要文件,它的内容是对Lexer这个类的具体实现,原文件的注释中:“This file implements the Lexer and T

2016-08-10 17:10:50 5313 9

翻译 TensorFlow博客翻译——TensorFlow v0.9发布,带有增强版的移动支持

TensorFlow v0.9 now available with improved mobile supportMonday, June 27, 2016Posted by Pete Warden, Software EngineerWhen we started building TensorFlow, supporting mobile devices was a top priority

2016-07-13 09:44:44 4585

原创 TensorFlow学习笔记之五——源码分析之最近算法

A nearest neighbor learning algorithm example using TensorFlow library.This example is using the MNIST database of handwritten digits (http://yann.lecun.com/exdb/mnist/)

2016-05-23 16:54:19 16377 4

原创 TensorFlow学习笔记之四——源码分析之基本操作

例子源码地址:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/1%20-%20Introduction/basic_operations.py根据网上的入门例子,一点点的熟悉代码和TensorFlow。对这个基本的例子,做一个注释,备忘之余分享给同样入门的初学者。import tensorflow

2016-05-11 11:13:36 10989

原创 TensorFlow学习笔记之三——适合入门的一些资源

Github上除了有TensorFlow的源码库之外,还有一些很不错的适合入门的资源。现在将目前已经解除到的资源整理出来,和大家分享。1、TensorFlow源码库https://github.com/tensorflow/tensorflow2、TensorFlow中文文档https://github.com/jikexueyuanwiki/tensorflow-zh3、TensorFlow入门

2016-05-11 10:16:18 21554 2

原创 TensorFlow学习笔记之二——安装和运行

通过阅读TensorFlow的论文和相关博文之后,接下来,对TensorFlow进行一个简单的初步运行。1、安装了Ubuntu 16.04.(ubuntu-16.04-desktop-amd64.iso)2、sudo apt-get update3、# Ubuntu/Linux 64-bit     $ sudo apt-get install python-pip python-dev4、# U

2016-05-09 13:48:09 13878 5

翻译 TensorFlow博客翻译——用TensorFlow在云端进行机器学习

原文地址Machine Learning in the Cloud, with TensorFlowWednesday, March 23, 2016Posted by Slaven Bilac, Software Engineer, Google Research用TensorFlow在云端进行机器学习At Google, researchers collaborate closely with

2016-05-09 08:54:30 9080

翻译 TensorFlow博客翻译——TensorFlow 0.8发布

TensorFlow0.8发布——目前可以支持分布式计算!Google在一系列的产品中都使用了机器学习。为了继续发展我们的模式,训练过程尽可能的快就显得十分重要。其中的一个办法就是在成百上千台机器上运行TensorFlow,这将把一些模型的训练时间从几周缩短到几个小时,并且能有条件让我们去试验更大和更复杂的模型。甚至当我们把TensorFlow开源之后,对分布式训练的支撑也成为了呼声最高的特征之一

2016-05-06 20:44:29 6492

翻译 TensorFlow博客翻译——DeepMind转向TensorFlow

DeepMind moves to TensorFlowDeepMind转向TensorFlowFriday, April 29, 2016Posted by Koray Kavukcuoglu, Research Scientist, Google DeepMindAt DeepMind, we conduct state-of-the-art research on a wide range

2016-05-06 15:49:12 6903

优亿Android特刊】第二十三期:寻找“冰淇淋三明治”的痕迹

优亿Android特刊】第二十三期:寻找“冰淇淋三明治”的痕迹,介绍了冰激凌三明治的新增的一些特征。

2012-04-19

Android编程指引

《Android Programming Tutorials》第三版,英文版本,面向Android3.0.一个很不错的电子书,清晰度也高。虽然现在Android已经出到4.0了,但是基本的东西还都是一样的。

2012-04-17

eoe-15期 Android Multimedia

eoe的电子杂志,介绍了Android多媒体部分的内容。

2012-04-17

eoe-20期 Android 内存管理

eoe的电子杂志,介绍了Andorid的内存管理。

2012-04-17

eoe-13期 Android源码结构分析

eoe Android杂志第13期,介绍Android源码的结构。主要是2.X的版本。

2012-04-17

C语言深度解剖(很不错的小册子)

一本很不错的小册子,不适合C语言初学者,但是对C语言学习者提高很有帮助。

2010-01-31

absolute C++(EN)

经典书籍,英文原版,非常清晰。适合于学生的一本C++学习书籍。

2010-01-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除