自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (22)
  • 收藏
  • 关注

翻译 64-ia-32架构优化手册(10)

2.6. Intel®超线程技术 通过在一个物理处理器内或一个物理处理器封装内的每个处理器核内提供多个逻辑处理器,Intel®超线程技术(HT技术)使得软件可以利用任务级或线程级并行性。在其在IntelXeon处理器的第一次实现中,超线程技术使单个物理寄存器(或一个处理器核)看起来有两个或多个逻辑处理器。基于KnightsLanding微架构的IntelXeon Phi处理器在每个处理器核中支

2017-11-23 11:43:16 424

原创 LLVM学习笔记(23)

3.4.2.9.推导、验证指令的性质在Instruction的定义里可以看到许多bit域,其中mayLoad,mayStore,hasSideEffects是未初始化的。如果目标机器指令的定义也没有提供进一步的初始化,就需要根据指令匹配模板的内容、属性来推导这些域。这些工作由下面的方法来完成。3209 void CodeGenDAGPatterns::InferInstructionF...

2017-11-23 11:38:43 894

翻译 Intel, AMD及VIA CPU的微架构(9)

4.      Pentium 1与PentiumMMX流水线P1与PMMX处理器不能乱序处理。但通过下面描述的指令成对机制,它们可以同时执行两条相邻的指令。4.1.      整数指令成对预取成对P1与PMMX有两条流水线用于指令执行,称为U-管道及V-管道。在某些情形下,同时执行两条指令是可能的。一个在U-管道,一个在V-管道。这几乎可以使深度加倍。因此,重排指令使它们成对是有

2017-11-16 11:38:45 481

原创 LLVM学习笔记(22)

3.4.2.8.PatternToMatch的变体因为符合交换律的模式可以有多种匹配形式,还需要从相应的PatternToMatch实例生成符合这些匹配形式的PatternToMatch变体来覆盖这些情形。3744 void CodeGenDAGPatterns::GenerateVariants() {3745 DEBUG(errs() << "Generati...

2017-11-10 11:43:45 540

翻译 64-ia-32架构优化手册(9)

2.5.5.读写操作的增强Intel微架构Nehalem的内存簇提供了以下增强以加速内存操作:·        每周期一个128比特读与一个128比特写操作的峰值发布速率。·        读写操作的更深缓冲:48个读缓冲,32个写缓冲以及10个填充缓冲。·        快速非对齐内存访问,以及内存对齐危险(memory alignmenthazard)的强健处理。·    

2017-11-03 11:54:40 348

翻译 Intel, AMD及VIA CPU的微架构(8)

3.15.      在更旧处理器上的间接跳转 间接跳转,间接调用,以及返回每次都可能去不同的地址。在比PM及K10更旧的处理器中,间接跳转或间接调用的预测方法只是预测它将去到与上一次执行相同的目标。在第一次看到间接跳转或间接调用时,它被预测去到紧接着的指令。因此,间接跳转或调用总是应该后接有效的代码。不要在一个间接跳转或调用后立即放置一系列跳转地址。这样一个列表最好放在数据段,而不是代码段。

2017-11-03 11:44:59 384

原创 LLVM学习笔记(21)

3.4.2.6.Pattern的处理我们已经知道Pattern定义可以将通用的IR指令表示映射为特定于目标机器的指令(对目标机器不同的型号,可以映射到这些型号特有的、更高效的指令)。因此对指令选择,Pattern定义是有益的补充。因为Pattern定义会援引指令,因此需要在解析完所有的指令定义后才开始处理。3386 void CodeGenDAGPatterns::ParsePatte...

2017-11-03 11:40:40 766

Introduction to Theory of Computation

This is a free textbook for an undergraduate course on the Theory of Computation, which we have been teaching at Carleton University since 2002.Until the 2011/2012 academic year, this course was offered as a second-year course (COMP 2805) and was compulsory for all Computer Science students. Starting with the 2012/2013 academic year, the course has been downgraded to a third-year optional course (COMP 3803).

2018-09-23

Survey on Instruction Selection

Instruction selection is one of three optimization problems involved in the code generator back-end of a compiler. The instruction selector is responsible of transforming an input program from its target-independent representation into a target-specific form by making best use of the available machine instructions. Hence instruction selection is a crucial part of efficient code generation.

2018-09-23

Towards a Compilation infrastructure for network processors

Modern network processors (NPs) typically resemble a highly-multithreaded multiprocessor-ona-chip, supporting a wide variety of mechanisms for on-chip storage and inter-task communication. NP applications are themselves composed of many threads that share memory and other resources,and synchronize and communicate frequently. In contrast, studies of new NP architectures and features are often performed by benchmarking a simulation model of the new NP using independent kernel programs that neither communicate nor share memory. In this paper we present a NP simulation infrastructure that (i) uses realistic NP applications that are multithreaded, share memory, synchronize, and communicate; and (ii) automatically maps these applications to a variety of NP architectures and features. We use our infrastructure to evaluate threading and scaling, on-chip storage and communication, and to suggest future techniques for automated compilation for NPs.

2018-09-23

the art of multiprocessor programming

The first third covers the principles of concurrent programming, showing how to think like a concurrent programmer. Like many other skills such as driving a car, cooking a meal, or appreciating caviar, thinking concurrently requires cultivation, but it can be learned with moderate effort. Readers who want to start programming right away may skip most of this section, but should still read Chapters 2

2018-09-23

Crafting a Compiler

Brief Contents 1 Introduction 1 2 A Simple Compiler 31 3 Scanning—Theory and Practice 57 4 Grammars and Parsing 113 5 Top-Down Parsing 143 6 Bottom-Up Parsing 179 7 Syntax-Directed Translation 235 8 Symbol Tables and Declaration Processing 279 9 Semantic Analysis 343 10 Intermediate Representations 391 11 Code Generation for a Virtual Machine 417 12 Runtime Support 445 13 Target Code Generation 489 14 Program Optimization 547

2018-09-01

How Debuggers Work

a total guide to debuggers: what they do, how they work, and how to use them to produce better programs

2018-09-01

Elements of Compiler Design

This book is intended as a text for a one-term introductory course in compiler writing at a senior undergraduate level. It maintains a balance between a theoretical and practical approach to this subject. From a theoretical viewpoint, it introduces rudimental models underlying compilation and its essential phases.

2018-09-01

category-theory-for-programmers

category theory is a treasure trove of extremely useful programming ideas. Haskell programmers have been tapping this resource for a long time, and the ideas are slowly percolating into other languages, but this process is too slow. We need to speed it up. Second, there are many different kinds of math, and they appeal to different audiences. You might be allergic to calculus or algebra, but it doesn't mean you won't enjoy category theory. I would go as far as to argue that category theory is the kind of math that is particularly well suited for the minds of programmers. That’s because category theory — rather than dealing with particulars — deals with structure. It deals with the kind of structure that makes programs composable.

2018-09-01

Language_Implementation_Patterns_C

This book gives you just the tools you'll need to develop day-to-day language applications. You'll be able to handle all but the really advanced or esoteric situations. For example, we won't have space to cover topics such as machine code generation, register allocation, automatic garbage collection, thread models, and extremely efficient interpreters. You'll get good all-around expertise implementing modest languages, and you'll get respectable expertise in processing or translating complex languages

2018-09-01

Compiler Construction-20th

the essays collection of conference of Compiler Construction-20th

2018-09-01

Compiler Construction-19th

the essays collection of conference of Compiler Construction-19th

2018-09-01

Compiler Construction-17th

the essays collection of conference of Compiler Construction-17th

2018-09-01

Compiler Construction-16th

the essays collection of conference of Compiler Construction-16th

2018-09-01

Compiler Construction-5th

the essays collection of conference of Compiler Construction-5th

2018-09-01

Construction and Evolution of Code Generator

It describes the Construction and Evolution of Code Generator

2018-09-01

Modern Embedded Computing Designing Connected, Pervasive, Media-Rich Systems

Modern Embedded Computing Designing Connected, Pervasive, Media-Rich Systems

2018-09-01

Compiler Construction-11th

the essays collection of conference Compiler Construction-11th

2018-09-01

The compiler design handbook

The compiler design handbook, which describes the design practice of compiler

2018-09-01

Data_Flow_Analysis_Theory_And_Practice(Bookos.org)

Data Flow Analysis Theory And Practice for compiler development

2018-09-01

The Compiler Design Handbook Optimizations and machine code generation

The Compiler Design Handbook Optimizations and machine code generation

2018-09-01

C++_Coding_Standards_101_Rule

C++ Coding Standards 101 Rule, Andrei Alexandrescu

2018-08-24

instruction scheduling for instruction level parallel processor

instruction scheduling for instruction level parallel processor

2018-07-16

空空如也

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

TA关注的人

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