LLVM to talk about the daily forty-nine LLVM backend document parsing 2

Disclaimer: This article is a blogger original article, shall not be reproduced without the bloggers allowed. https://blog.csdn.net/snsn1984/article/details/90341140

Previously  talked about the correspondence between the seven and six most part, simply speaking, it is in fact correspond to the seven aspects of the six parts of the fourth part: Target-work of the Independent code Generation algorithms (code address: lib / CodeGen).

We took time to look at where the new rear end, made seven steps, corresponding to the six parts of which part of the LLVM backend. We first of six major crop.

The rear end of six parts:

  1. Target description classes: abstract target description interfaces (代码地址:include/llvm/Target/)
  2. Marchine code description classes: classes used to repesent the code being generated for a target (代码地址:include/llvm/CodeGen/)
  3. The "MC" Layer: use to represent and process code at the raw machine code level(代码地址:lib/MC include/llvm/MC)
  4. Independent-Generation algorithms code the Target  (Code Address: lib / CodeGen)
  5. Implementations of the abstract description interfaces for particular targets (代码地址: lib/Target)
  6. The JIT target-Independent Components of The  (Code Address: lib / ExecutionEngine / JIT)

We first delete Part 6 JIT part, if we do not care about the JIT. Then we delete Section 4, corresponding to the algorithm part of target-independent (also correspond to the seven aspects of the back-end execution of the algorithm), and which is not related to specific objectives. We then delete paragraphs 2, 3, which is not part of the specific objectives and relationships. (Note: This section does not matter said, speaking from the source directory level does not matter, because the relationship is not without calling back end of six parts of this document is classified according to the source directory or you can say that these relations does not matter. specific goals and is not related, and are corresponding to the plurality of target) to only the last 5 and 1:

  • Target description classes: abstract target description interfaces (代码地址:include/llvm/Target/)
  • Implementations of the abstract description interfaces for particular targets (代码地址: lib/Target)

The Target description classes is actually some of the base class, which contains a lot of abstract interface needs. Real and specific objectives of on the left of Implementations of the abstract description interfaces for particular targets. This is what we tend to see the code related to specific platforms, are placed there under a special directory corresponds to a specific platform under llvm / lib / Target. In other words, we are seven steps to create the back-end, mainly in order to achieve its own directory for the new platform in llvm / lib / Target, but each step in order to achieve different content, but eventually fell to the directory under.

So, we use a less stringent words sum up: the seven aspects of the implementation of LLVM backend, the corresponding LLVM backend is the fourth of six parts ( Target-work of the Independent Generation code algorithms ); and the new LLVM backend seven steps, corresponding core LLVM backend is the fifth of six parts (Implementations of the abstract description interfaces for particular targets). (Note: So just to summarize facilitate new entry of the reader.)

 

related information:

Little angel his father: LLVM daily talk of thirty-seven LLVM backend Profile (Hangzhou Share PPT)

Little angel his father: LLVM daily talk of forty-seven LLVM backend document parsing

Little angel his father: LLVM talk about the daily forty-eight LLVM backend document parsing 1

Guess you like

Origin blog.csdn.net/snsn1984/article/details/90341140