Lines Matching refs:MIR

2 Machine IR (MIR) Format Reference Manual
14 This document is a reference manual for the Machine IR (MIR) serialization
15 format. MIR is a human readable serialization format that is used to represent
19 The MIR serialization format is designed to be used for testing the code
25 The MIR serialization format uses a YAML container. YAML is a standard
30 A MIR file is split up into a series of `YAML documents`_. The first document
36 MIR Testing Guide
39 You can use the MIR format for testing in two different ways:
41 - You can write MIR tests that invoke a single code generation pass using the
45 tests and check the MIR output of a specific code generation pass.
50 The ``-run-pass`` option in llc allows you to create MIR tests that invoke just
52 input MIR file, run the specified code generation pass(es), and output the
53 resulting MIR code.
55 You can generate an input MIR file for the test by using the ``-stop-after`` or
68 After generating the input MIR file, you'll have to add a run line that uses
75 The MIR files are target dependent, so they have to be placed in the target
80 Simplifying MIR files
83 The MIR code coming out of ``-stop-after``/``-stop-before`` is very verbose;
105 - MIR code contains a whole IR module. This is necessary because there are
106 no equivalents in MIR for global variables, references to external functions,
107 function attributes, metadata, debug info. Instead some MIR data references
112 operands in MIR. Example: `:: (load 8 from %ir.foobar, !alias.scope !9)`.
116 - MIR blocks can reference IR blocks for debug printing, profile information
117 or debug locations. Example: `bb.42.myblock` in MIR references the IR block
125 - It is possible to drop the whole IR section of the MIR file if it only
134 Currently the MIR format has several limitations in terms of which state it
149 These limitations impose restrictions on what you can test with the MIR format.
152 MMI, can't use the MIR format. As well as that, tests that test some behaviour
154 ``MachineConstantPoolValue`` subclasses can't use the MIR format at the moment.
164 When the first YAML document contains a `YAML block literal string`_, the MIR
711 of this operand in MIR, see :ref:`limitations <limitations>`.