llvm.org GIT mirror llvm / e0f2f60
fix some various typos in the doc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274449 91177308-0d34-0410-b5e6-96231b3b80d8 Sylvestre Ledru 3 years ago
7 changed file(s) with 10 addition(s) and 10 deletion(s). Raw diff Collapse all Expand all
577577 LLVM will emit a call to an appropriate ``__sync_*`` routine if the target
578578 ISelLowering code has set the corresponding ``ATOMIC_CMPXCHG``, ``ATOMIC_SWAP``,
579579 or ``ATOMIC_LOAD_*`` operation to "Expand", and if it has opted-into the
580 availablity of those library functions via a call to ``initSyncLibcalls()``.
580 availability of those library functions via a call to ``initSyncLibcalls()``.
581581
582582 The full set of functions that may be called by LLVM is (for ``N`` being 1, 2,
583583 4, 8, or 16)::
14261426 generated for this function needs to follow certain conventions that
14271427 make it possible for a runtime function to patch over it later.
14281428 The exact effect of this attribute depends on its string value,
1429 for which there currently is one legal possiblity:
1429 for which there currently is one legal possibility:
14301430
14311431 * ``"prologue-short-redirect"`` - This style of patchable
14321432 function is intended to support patching a function prologue to
43374337
43384338 ``DIMacro`` nodes represent definition or undefinition of a macro identifiers.
43394339 The ``name:`` field is the macro identifier, followed by macro parameters when
4340 definining a function-like macro, and the ``value`` field is the token-string
4340 defining a function-like macro, and the ``value`` field is the token-string
43414341 used to expand the macro identifier.
43424342
43434343 .. code-block:: llvm
3232 intended to discourage this self enforcement of community norms. Instead,
3333 the mechanisms described here are intended to supplement any self
3434 enforcement within the community. They provide avenues for handling severe
35 cases or cases where the reporting party does not whish to respond directly
35 cases or cases where the reporting party does not wish to respond directly
3636 for any reason.
3737
3838 Filing a report
153153 .. productionlist::
154154 Declaration: `Type` `TokIdentifier` ["=" `Value`]
155155
156 It assigns the value to the identifer.
156 It assigns the value to the identifier.
157157
158158 Types
159159 -----
4646 in Chapter #2.
4747
4848 Finally, a word on API generations: ORC is the 3rd generation of LLVM JIT API.
49 It was preceeded by MCJIT, and before that by the (now deleted) legacy JIT.
49 It was preceded by MCJIT, and before that by the (now deleted) legacy JIT.
5050 These tutorials don't assume any experience with these earlier APIs, but
5151 readers acquainted with them will see many familiar elements. Where appropriate
5252 we will make this connection with the earlier APIs explicit to help people who
139139 symbol mangling (more on that later), and two ORC *layers*: an
140140 ObjectLinkingLayer and a IRCompileLayer. We'll be talking more about layers in
141141 the next chapter, but for now you can think of them as analogous to LLVM
142 Passes: they wrap up useful JIT utilities behind an easy to compose interace.
142 Passes: they wrap up useful JIT utilities behind an easy to compose interface.
143143 The first layer, ObjectLinkingLayer, is the foundation of our JIT: it takes
144144 in-memory object files produced by a compiler and links them on the fly to make
145145 them executable. This JIT-on-top-of-a-linker design was introduced in MCJIT,
285285 eagerly means the JIT takes longer up-front, but proceeds smoothly once this is
286286 done. Deferring work allows the JIT to get up-and-running quickly, but will
287287 force the JIT to pause and wait whenever some code or data is needed that hasn't
288 already been procesed.
288 already been processed.
289289
290290 Our current REPL is eager: Each function definition is optimized and compiled as
291291 soon as it's typed in. If we were to make the transform layer lazy (but not
4545
4646 LLVM doesn't require us to to link in all the target
4747 functionality. For example, if we're just using the JIT, we don't need
48 the assembly printers. Similarly, if we're only targetting certain
48 the assembly printers. Similarly, if we're only targeting certain
4949 architectures, we can only link in the functionality for those
5050 architectures.
5151
7979 ==============
8080
8181 We will also need a ``TargetMachine``. This class provides a complete
82 machine description of the machine we're targetting. If we want to
82 machine description of the machine we're targeting. If we want to
8383 target a specific feature (such as SSE) or a specific CPU (such as
8484 Intel's Sandylake), we do so now.
8585