| OLD | NEW |
| 1 Subzero - Fast code generator for PNaCl bitcode | 1 Subzero - Fast code generator for PNaCl bitcode |
| 2 =============================================== | 2 =============================================== |
| 3 | 3 |
| 4 Building | 4 Building |
| 5 -------- | 5 -------- |
| 6 | 6 |
| 7 You must have LLVM trunk source code available and built. See | 7 You must have LLVM trunk source code available and built. See |
| 8 http://llvm.org/docs/GettingStarted.html#getting-started-quickly-a-summary for | 8 http://llvm.org/docs/GettingStarted.html#getting-started-quickly-a-summary for |
| 9 guidance. | 9 guidance. |
| 10 | 10 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 ../llvm2ice ./ir_samples/<file>.ll | 27 ../llvm2ice ./ir_samples/<file>.ll |
| 28 ../llvm2ice ./tests_lit/llvm2ice_tests/<file>.ll | 28 ../llvm2ice ./tests_lit/llvm2ice_tests/<file>.ll |
| 29 | 29 |
| 30 At this time, ``llvm2ice`` accepts a few arguments: | 30 At this time, ``llvm2ice`` accepts a few arguments: |
| 31 | 31 |
| 32 ``-help`` -- Show available arguments and possible values. | 32 ``-help`` -- Show available arguments and possible values. |
| 33 | 33 |
| 34 ``-notranslate`` -- Suppress the ICE translation phase, which is useful if | 34 ``-notranslate`` -- Suppress the ICE translation phase, which is useful if |
| 35 ICE is missing some support. | 35 ICE is missing some support. |
| 36 | 36 |
| 37 ``-target=<TARGET>`` -- Set the target architecture. The default is x8632, | 37 ``-target=<TARGET>`` -- Set the target architecture. The default is x8632. |
| 38 and x8632fast (generate x8632 code as fast as possible at the cost of code | 38 Future targets include x8664, arm32, and arm64. |
| 39 quality) is also available. Future targets include x8664, arm32, and arm64. | 39 |
| 40 ``-O<LEVEL>`` -- Set the optimization level. Valid levels are ``2``, ``1``, |
| 41 ``0``, ``-1``, and ``m1``. Levels ``-1`` and ``m1`` are synonyms, and |
| 42 represent the minimum optimization and worst code quality, but fastest code |
| 43 generation. |
| 40 | 44 |
| 41 ``-verbose=<list>`` -- Set verbosity flags. This argument allows a | 45 ``-verbose=<list>`` -- Set verbosity flags. This argument allows a |
| 42 comma-separated list of values. The default is ``none``, and the value | 46 comma-separated list of values. The default is ``none``, and the value |
| 43 ``inst,pred`` will roughly match the .ll bitcode file. Of particular use | 47 ``inst,pred`` will roughly match the .ll bitcode file. Of particular use |
| 44 are ``all`` and ``none``. | 48 are ``all`` and ``none``. |
| 45 | 49 |
| 50 ``-o <FILE>`` -- Set the assembly output file name. Default is stdout. |
| 51 |
| 52 ``-log <FILE>`` -- Set the file name for diagnostic output (whose level is |
| 53 controlled by ``-verbose``). Default is stdout. |
| 54 |
| 46 See ir_samples/README.rst for more details. | 55 See ir_samples/README.rst for more details. |
| 47 | 56 |
| 48 Running the test suite | 57 Running the test suite |
| 49 ---------------------- | 58 ---------------------- |
| 50 | 59 |
| 51 Subzero uses the LLVM ``lit`` testing tool for its test suite, which lives in | 60 Subzero uses the LLVM ``lit`` testing tool for its test suite, which lives in |
| 52 ``tests_lit``. To execute the test suite, first build Subzero, and then run:: | 61 ``tests_lit``. To execute the test suite, first build Subzero, and then run:: |
| 53 | 62 |
| 54 python <path_to_lit.py> -sv tests_lit | 63 python <path_to_lit.py> -sv tests_lit |
| 55 | 64 |
| 56 ``path_to_lit`` is the direct path to the lit script in the LLVM source | 65 ``path_to_lit`` is the direct path to the lit script in the LLVM source |
| 57 (``$LLVM_SRC_PATH/utils/lit/lit.py``). | 66 (``$LLVM_SRC_PATH/utils/lit/lit.py``). |
| 58 | 67 |
| 59 The above ``lit`` execution also needs the LLVM binary path in the | 68 The above ``lit`` execution also needs the LLVM binary path in the |
| 60 ``LLVM_BIN_PATH`` env var. | 69 ``LLVM_BIN_PATH`` env var. |
| 61 | 70 |
| 62 Assuming the LLVM paths are set up, ``make check`` is a convenient way to run | 71 Assuming the LLVM paths are set up, ``make check`` is a convenient way to run |
| 63 the test suite. | 72 the test suite. |
| 64 | 73 |
| 65 Assembling ``llvm2ice`` output | 74 Assembling ``llvm2ice`` output |
| 66 ------------------------------ | 75 ------------------------------ |
| 67 | 76 |
| 68 Currently ``llvm2ice`` produces textual assembly code in a structure suitable | 77 Currently ``llvm2ice`` produces textual assembly code in a structure suitable |
| 69 for input to ``llvm-mc`` and currently using "intel" assembly syntax. The first | 78 for input to ``llvm-mc`` and currently using "intel" assembly syntax. The first |
| 70 line of output is a convenient comment indicating how to pipe the output to | 79 line of output is a convenient comment indicating how to pipe the output to |
| 71 ``llvm-mc`` to produce object code. | 80 ``llvm-mc`` to produce object code. |
| OLD | NEW |