@@ -90,8 +90,8 @@ This design has two important implications. The first is that LLVM can support
9090completely non-traditional code generation targets. For example, the C backend
9191does not require register allocation, instruction selection, or any of the other
9292standard components provided by the system. As such, it only implements these
93- two interfaces, and does its own thing. Note that C backend was removed from the
94- trunk since LLVM 3.1 release. Another example of a code generator like this is a
93+ two interfaces, and does its own thing. Note that the C backend was removed from the
94+ trunk in the LLVM 3.1 release. Another example of a code generator like this is a
9595(purely hypothetical) backend that converts LLVM to the GCC RTL form and uses
9696GCC to emit machine code for a target.
9797
@@ -565,7 +565,7 @@ Conceptually a MI bundle is a MI with a number of other MIs nested within:
565565MI bundle support does not change the physical representations of
566566MachineBasicBlock and MachineInstr. All the MIs (including top level and nested
567567ones) are stored as sequential list of MIs. The "bundled" MIs are marked with
568- the 'InsideBundle' flag. A top level MI with the special BUNDLE opcode is used
568+ the 'InsideBundle' flag. A top- level MI with the special BUNDLE opcode is used
569569to represent the start of a bundle. It's legal to mix BUNDLE MIs with individual
570570MIs that are not inside bundles nor represent bundles.
571571
@@ -575,7 +575,7 @@ The MachineBasicBlock iterator has been modified to skip over bundled MIs to
575575enforce the bundle-as-a-single-unit concept. An alternative iterator
576576instr_iterator has been added to MachineBasicBlock to allow passes to iterate
577577over all of the MIs in a MachineBasicBlock, including those which are nested
578- inside bundles. The top level BUNDLE instruction must have the correct set of
578+ inside bundles. The top- level BUNDLE instruction must have the correct set of
579579register MachineOperand's that represent the cumulative inputs and outputs of
580580the bundled MIs.
581581
@@ -602,7 +602,7 @@ level, devoid of "high level" information like "constant pools", "jump tables",
602602"global variables" or anything like that. At this level, LLVM handles things
603603like label names, machine instructions, and sections in the object file. The
604604code in this layer is used for a number of important purposes: the tail end of
605- the code generator uses it to write a .s or .o file, and it is also used by the
605+ the code generator uses it to write a `` .s `` or `` .o `` file, and it is also used by the
606606llvm-mc tool to implement standalone machine code assemblers and disassemblers.
607607
608608This section describes some of the important classes. There are also a number
@@ -615,8 +615,8 @@ The ``MCStreamer`` API
615615----------------------
616616
617617MCStreamer is best thought of as an assembler API. It is an abstract API which
618- is *implemented * in different ways (e.g. to output a .s file, output an ELF .o
619- file, etc) but whose API correspond directly to what you see in a .s file.
618+ is *implemented * in different ways (e.g. to output a `` .s `` file, output an ELF `` .o ``
619+ file, etc) but whose API corresponds directly to what you see in a `` .s `` file.
620620MCStreamer has one method per directive, such as EmitLabel, EmitSymbolAttribute,
621621switchSection, emitValue (for .byte, .word), etc, which directly correspond to
622622assembly level directives. It also has an EmitInstruction method, which is used
@@ -629,7 +629,7 @@ higher level LLVM IR and Machine* constructs down to the MC layer, emitting
629629directives through MCStreamer.
630630
631631On the implementation side of MCStreamer, there are two major implementations:
632- one for writing out a .s file (MCAsmStreamer), and one for writing out a .o
632+ one for writing out a `` .s `` file (MCAsmStreamer), and one for writing out a `` .o ``
633633file (MCObjectStreamer). MCAsmStreamer is a straightforward implementation
634634that prints out a directive for each method (e.g. ``EmitValue -> .byte ``), but
635635MCObjectStreamer implements a full assembler.
@@ -639,7 +639,7 @@ Each target that needs it defines a class that inherits from it and is a lot
639639like MCStreamer itself: It has one method per directive and two classes that
640640inherit from it, a target object streamer and a target asm streamer. The target
641641asm streamer just prints it (``emitFnStart -> .fnstart ``), and the object
642- streamer implement the assembler logic for it.
642+ streamer implements the assembler logic for it.
643643
644644To make llvm use these classes, the target initialization must call
645645TargetRegistry::RegisterAsmStreamer and TargetRegistry: :RegisterMCObjectStreamer
@@ -667,7 +667,7 @@ MCSymbols are created by MCContext and uniqued there. This means that MCSymbols
667667can be compared for pointer equivalence to find out if they are the same symbol.
668668Note that pointer inequality does not guarantee the labels will end up at
669669different addresses though. It's perfectly legal to output something like this
670- to the .s file:
670+ to the `` .s `` file:
671671
672672::
673673
@@ -685,7 +685,7 @@ subclassed by object file specific implementations (e.g. ``MCSectionMachO``,
685685``MCSectionCOFF ``, ``MCSectionELF ``) and these are created and uniqued by
686686MCContext. The MCStreamer has a notion of the current section, which can be
687687changed with the SwitchToSection method (which corresponds to a ".section"
688- directive in a .s file).
688+ directive in a `` .s `` file).
689689
690690.. _MCInst :
691691
@@ -887,7 +887,7 @@ bundled into a single scheduling-unit node, and with immediate operands and
887887other nodes that aren't relevant for scheduling omitted.
888888
889889The option ``-filter-view-dags `` allows to select the name of the basic block
890- that you are interested to visualize and filters all the previous
890+ that you are interested in visualizing and filters all the previous
891891``view-*-dags `` options.
892892
893893.. _Build initial DAG :
@@ -944,7 +944,7 @@ The Legalize phase is in charge of converting a DAG to only use the operations
944944that are natively supported by the target.
945945
946946Targets often have weird constraints, such as not supporting every operation on
947- every supported datatype (e.g. X86 does not support byte conditional moves and
947+ every supported data type (e.g. X86 does not support byte conditional moves and
948948PowerPC does not support sign-extending loads from a 16-bit memory location).
949949Legalize takes care of this by open-coding another sequence of operations to
950950emulate the operation ("expansion"), by promoting one type to a larger type that
@@ -1077,7 +1077,7 @@ for your target. It has the following strengths:
10771077 if your patterns make sense or not.
10781078
10791079* It can handle arbitrary constraints on operands for the pattern match. In
1080- particular, it is straight-forward to say things like "match any immediate
1080+ particular, it is straightforward to say things like "match any immediate
10811081 that is a 13-bit sign-extended value". For examples, see the ``immSExt16 ``
10821082 and related ``tblgen `` classes in the PowerPC backend.
10831083
@@ -1615,7 +1615,7 @@ Since the MC layer works at the level of abstraction of object files, it doesn't
16151615have a notion of functions, global variables etc. Instead, it thinks about
16161616labels, directives, and instructions. A key class used at this time is the
16171617MCStreamer class. This is an abstract API that is implemented in different ways
1618- (e.g. to output a .s file, output an ELF .o file, etc) that is effectively an
1618+ (e.g. to output a `` .s `` file, output an ELF `` .o `` file, etc) that is effectively an
16191619"assembler API". MCStreamer has one method per directive, such as EmitLabel,
16201620EmitSymbolAttribute, switchSection, etc, which directly correspond to assembly
16211621level directives.
@@ -1648,7 +1648,7 @@ three important things that you have to implement for your target:
16481648
16491649Finally, at your choosing, you can also implement a subclass of MCCodeEmitter
16501650which lowers MCInst's into machine code bytes and relocations. This is
1651- important if you want to support direct .o file emission, or would like to
1651+ important if you want to support direct `` .o `` file emission, or would like to
16521652implement an assembler for your target.
16531653
16541654Emitting function stack size information
@@ -1678,7 +1678,7 @@ Instructions in a VLIW target can typically be mapped to multiple functional
16781678units. During the process of packetizing, the compiler must be able to reason
16791679about whether an instruction can be added to a packet. This decision can be
16801680complex since the compiler has to examine all possible mappings of instructions
1681- to functional units. Therefore to alleviate compilation-time complexity, the
1681+ to functional units. Therefore, to alleviate compilation-time complexity, the
16821682VLIW packetizer parses the instruction classes of a target and generates tables
16831683at compiler build time. These tables can then be queried by the provided
16841684machine-independent API to determine if an instruction can be accommodated in a
@@ -1729,7 +1729,7 @@ Instruction Alias Processing
17291729----------------------------
17301730
17311731Once the instruction is parsed, it enters the MatchInstructionImpl function.
1732- The MatchInstructionImpl function performs alias processing and then does actual
1732+ The MatchInstructionImpl function performs alias processing and then performs actual
17331733matching.
17341734
17351735Alias processing is the phase that canonicalizes different lexical forms of the
@@ -1934,7 +1934,7 @@ following constraints are met:
19341934
19351935* Caller and callee have matching return type or the callee result is not used.
19361936
1937- * If any of the callee arguments are being passed in stack, they must be
1937+ * If any of the callee arguments are being passed on the stack, they must be
19381938 available in caller's own incoming argument stack and the frame offsets must
19391939 be the same.
19401940
@@ -2074,7 +2074,7 @@ character per operand with an optional special size. For example:
20742074The PowerPC backend
20752075-------------------
20762076
2077- The PowerPC code generator lives in the lib/Target/PowerPC directory. The code
2077+ The PowerPC code generator lives in the `` lib/Target/PowerPC `` directory. The code
20782078generation is retargetable to several variations or *subtargets * of the PowerPC
20792079ISA; including ppc32, ppc64 and altivec.
20802080
@@ -2140,7 +2140,7 @@ previous frame pointer (r31.) The entries in the linkage area are the size of a
21402140GPR, thus the linkage area is 24 bytes long in 32-bit mode and 48 bytes in
2141214164-bit mode.
21422142
2143- 32 bit linkage area:
2143+ 32- bit linkage area:
21442144
21452145:raw-html: `<table border =" 1" cellspacing =" 0" >`
21462146:raw-html: `<tr >`
@@ -2169,7 +2169,7 @@ GPR, thus the linkage area is 24 bytes long in 32-bit mode and 48 bytes in
21692169:raw-html: `</tr >`
21702170:raw-html: `</table >`
21712171
2172- 64 bit linkage area:
2172+ 64- bit linkage area:
21732173
21742174:raw-html: `<table border =" 1" cellspacing =" 0" >`
21752175:raw-html: `<tr >`
0 commit comments