llvm/bindings/ocaml
Joerg Sonnenberger 732f95ff9a Reapply r374743 with a fix for the ocaml binding
Add a pass to lower is.constant and objectsize intrinsics

This pass lowers is.constant and objectsize intrinsics not simplified by
earlier constant folding, i.e. if the object given is not constant or if
not using the optimized pass chain. The result is recursively simplified
and constant conditionals are pruned, so that dead blocks are removed
even for -O0. This allows inline asm blocks with operand constraints to
work all the time.

The new pass replaces the existing lowering in the codegen-prepare pass
and fallbacks in SDAG/GlobalISEL and FastISel. The latter now assert
on the intrinsics.

Differential Revision: https://reviews.llvm.org/D65280


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@374784 91177308-0d34-0410-b5e6-96231b3b80d8
2019-10-14 16:15:14 +00:00
..
all_backends Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
analysis Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
backends Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
bitreader Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
bitwriter Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
executionengine Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
irreader Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
linker Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
llvm Revert "[OCaml] Handle nullptr in Llvm.global_initializer" 2019-10-01 08:29:07 +00:00
target Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
transforms Reapply r374743 with a fix for the ocaml binding 2019-10-14 16:15:14 +00:00
CMakeLists.txt
README.txt

This directory contains LLVM bindings for the OCaml programming language
(http://ocaml.org).

Prerequisites
-------------

* OCaml 4.00.0+.
* ctypes 0.4+.
* oUnit 2+ (only required for tests).
* CMake (to build LLVM).

Building the bindings
---------------------

If all dependencies are present, the bindings will be built and installed
as a part of the default CMake configuration, with no further action.
They will only work with the specific OCaml compiler detected during the build.

The bindings can also be built out-of-tree, i.e. targeting a preinstalled
LLVM. To do this, configure the LLVM build tree as follows:

    $ cmake -DLLVM_OCAML_OUT_OF_TREE=TRUE \
            -DCMAKE_INSTALL_PREFIX=[OCaml install prefix] \
            [... any other options]

then build and install it as:

    $ make ocaml_all
    $ cmake -P bindings/ocaml/cmake_install.cmake