Commit Graph

332 Commits

Author SHA1 Message Date
Peter Zotov
150c95eab5 [OCaml] (PR11717) Make declare_qualified_global respect address argument
Original patch by Jonathan Ragan-Kelley

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194064 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-05 11:56:13 +00:00
Peter Zotov
19648c00d6 [OCaml] Properly tag the custom operations of Llvm.llbuilder
All other custom operations tags have LLVM prefix.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194058 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-05 09:13:46 +00:00
Peter Zotov
9a62ec7308 [OCaml] Llvm_linker: do not use external in module interface
Workaround for an OCaml bug:
http://caml.inria.fr/mantis/view.php?id=4166

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194057 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-05 09:13:39 +00:00
Peter Zotov
4ebe64ae7e [OCaml] implement Llvm_passmgr_builder, bindings for PassManagerBuilder
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193968 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-04 01:39:42 +00:00
Peter Zotov
6b8416192a [OCaml] Documentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193967 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-04 01:39:31 +00:00
Peter Zotov
8a3bdd6a3f [OCaml] Implement missing LLVMCore APIs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193966 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-04 01:39:26 +00:00
Peter Zotov
e5de63c7de [OCaml] Formatting
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193965 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-04 01:39:18 +00:00
Peter Zotov
f00a9e0f79 [OCaml] Implement Llvm.MemoryBuffer.{of_string,as_string}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193953 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-03 08:27:45 +00:00
Peter Zotov
88d74c3093 [OCaml] Fix ABI incompatibility
OCaml's type unit is not compatible with C's type void.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193952 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-03 08:27:37 +00:00
Peter Zotov
9d33bf70c2 [OCaml] Implement Llvm_linker, bindings for the IR linker
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193951 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-03 08:27:32 +00:00
Peter Zotov
1185582dfd [OCaml] Implement Llvm_vectorize bindings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193950 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-03 08:27:22 +00:00
Peter Zotov
fed0b34142 [OCaml] Llvm_target: fix typo (Int_val instead of Int64_val)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193948 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-03 08:27:08 +00:00
Peter Zotov
30288ac402 [OCaml] Llvm_scalar_opts: add missing transforms
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193946 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-03 07:54:17 +00:00
Peter Zotov
630109d30c [OCaml] Llvm_ipo: add missing transforms
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193945 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-03 07:54:08 +00:00
Sylvestre Ledru
9fd6ef28a3 OCaml bindings: fix typo
Patch by Peter Zotov



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193851 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-01 02:29:13 +00:00
Sylvestre Ledru
40a461d547 OCaml bindings: remove unused DONT_BUILD_RELINKED from Makefiles
Patch by Peter Zotov




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193847 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-01 01:14:24 +00:00
Sylvestre Ledru
3d841cb9d3 OCaml bindings: fix typo
Patch by Peter Zotov



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193845 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-01 01:10:58 +00:00
Sylvestre Ledru
e239d20d36 OCaml bindings: fix typo in documentation
Patch by Peter Zotov



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193838 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-01 00:30:02 +00:00
Sylvestre Ledru
dfc58e3bcf OCaml bindings: formatting
This commit only changes comments and documentation in OCaml bindings. The official name of the language is OCaml, and the usage is now consistent.

Patch by Peter Zotov



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193836 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-01 00:26:01 +00:00
Michael Gottesman
abaa85d88d [python-bindings] Added support for getting/setting operands of values and getting the number of operands of a value.
Also in the process did some cleanups for BasicBlock.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190477 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-11 01:38:12 +00:00
Michael Gottesman
73c382f7fd [python-bindings] Added support for iterating over a basic blocks instructions, getting their name/dumping them, f/b iteration.
Tests are included.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190475 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-11 01:17:38 +00:00
Michael Gottesman
e23fa984f5 [python-bindings] Added support for iterating over a function's basic blocks, dumping/getting names of those bb, f/w iteration.
Tests are included.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190473 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-11 01:01:40 +00:00
Michael Gottesman
7dfa4bc471 [python-bindings] Added support for getting a module's functions, iterating f/b over said functions, dumping/print name of functions.
Tests are included as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190471 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-11 00:52:47 +00:00
Michael Gottesman
f532d44830 [python-bindings] Export OpCode from core.py.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190468 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-11 00:41:07 +00:00
Michael Gottesman
a1e366058b [python-bindings] Added test for reading a module from bitcode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190467 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-11 00:41:05 +00:00
Michael Gottesman
7400a858be [python-bindings] Fixed 3 test failures caused by typos.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190465 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-11 00:41:02 +00:00
Michael Gottesman
f495a26792 Fixed typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190459 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-11 00:27:23 +00:00
Michael Gottesman
37a8807323 [python-bindings] Added code for loading a module from bitcode, getset its datalayout, getset its target, dump it, print it to a file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190458 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-11 00:23:14 +00:00
Michael Gottesman
6a63cd1281 [python-bindings] Added bindings for LLVMContextRef and a test for creating a new context or getting the global context.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190457 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-11 00:23:10 +00:00
Michael Gottesman
8184ca673b [python-bindings] Implemented the PassRegistry class and the calls to initialize/shutdown llvm. Also included an initialize_llvm declaration.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190456 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-11 00:23:08 +00:00
Michael Gottesman
699f8c3524 [python-bindings] Removed unused import byref from llvm/disassembler.py.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190455 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-11 00:23:05 +00:00
Michael Gottesman
86942d20b9 [python-bindings] Changed test_memory_buffer_create_from_file to just use the generic provided test_file instead of a binary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190389 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-10 06:58:00 +00:00
Michael Gottesman
653212fdd1 [python bindings] Added code to get the length of a memory buffer. Tests are included.
This is a part of a series of patches that have been sitting fallow on a
personal branch that I have been messing with for a bit.

The patches start to flesh out the python llvm-c wrapper to the point where you can:

1. Load Modules from Bitcode/Dump/Print them.
2. Iterate over Functions from those modules/get their names/dump them.
3. Iterate over the BasicBlocks from said function/get the BB's name/dump it.
4. Iterate over the Instructions in said BasicBlocks/get the instructions
   name/dump the instruction.

My main interest in developing this was to be able to gather statistics about
LLVM IR using python scripts to speed up statistical profiling of different IR
level transformations (hence the focus on printing/dumping/getting names).

This is a gift from me to the LLVM community = ).

I am going to be committing the patches slowly over the next bit as I have time
to prepare the patches.

The overall organization follows the c-api like the bindings that are already
implemented.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190388 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-10 06:57:57 +00:00
Bill Wendling
0c25b8f07e We're in 3.4 land now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181350 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-07 20:31:28 +00:00
Andrew Kaylor
d2755af8bd Exposing MCJIT through C API
Re-submitting with fix for OCaml dependency problems (removing dependency on SectionMemoryManager when it isn't used).

Patch by Fili Pizlo



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180720 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-29 17:49:40 +00:00
Andrew Kaylor
2f5640d637 Fixing OCAML bindings for MCJIT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180232 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-25 00:03:58 +00:00
Gregory Szorc
fdddf77171 [python] Add markup option to disassembler
Patch contributed by Wladimir J. van der Laan <laanwj@gmail.com>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169102 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-01 21:57:30 +00:00
Anders Waldenborg
17cfe87c39 [python] fix get_library()
Before this fix, the LLVM Python bindings on SVN trunk always fail with:
	Exception: LLVM shared library not found!
since it's still looking for a library named "LLVM-3.1svn".

Besides updating the LLVM version in the library name,
this patch also changes llvm.get_library() to make it possible to run
the unit tests without installing the LLVM shared library into a
default linker search path.

e.g. after this patch, running the llvm/python unit tests with:
LD_LIBRARY_PATH=../build/Debug+Asserts/lib nosetests -v bindings/python/llvm/tests/
would work on Linux.

Patch from Scott Tsai (with some minor modifications)

Patch also acked by Gregory Szorc



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168390 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-20 22:27:55 +00:00
Micah Villmow
28ce1cc183 Fix a build error for ocaml bindings that was introduced with the TargetData --> DataLayout changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166309 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-19 20:36:22 +00:00
Micah Villmow
e2c207db1d Fix the ocaml binding breakage from TargetData -> DataLayout changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165406 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-08 17:06:25 +00:00
Micah Villmow
791cfc211a Move TargetData to DataLayout.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165403 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-08 16:39:34 +00:00
Nuno Lopes
4d00161e0a add support for ocaml 3.12
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163096 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-02 14:42:56 +00:00
Bill Wendling
df6c55155c Remove tabs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160482 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-19 00:23:13 +00:00
Anders Waldenborg
e3295cc5be [python] Add negative MemoryBuffer testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153248 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-22 11:23:52 +00:00
Anders Waldenborg
a8d873e178 [python] Add some paths where to find test binary
Adds /usr/lib/debug early to list, as some systems (debian) have unstripped libs in there
Adds /lib/i386-linux-gnu for systems that does multiarch (debian)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153174 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-21 08:34:58 +00:00
Anders Waldenborg
3595954130 [python] Mark get_test_binary as not being a test
get_test_binary is a helper method, not a test, make sure nosetests
doesn't pick it up as a test.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153173 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-21 08:18:19 +00:00
Gregory Szorc
92a3e9d63a [llvm.py] Implement disassembler interface
It doesn't currently support the op info and symbol lookup callbacks,
but it is better than nothing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152527 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-11 02:32:56 +00:00
Gregory Szorc
309a2c4e3b Revert "[llvm.py] Implement interface to enhanced disassembler"
Chris Lattner says the edis interface is going away. It doesn't make
sense to land something that will go away in the near future.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152508 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10 21:44:03 +00:00
Gregory Szorc
0b3aae906f [llvm.py] Implement interface to enhanced disassembler
This requires a C++ change to EDDisassembler's ctor to function properly
(the llvm::InitializeAll* functions aren't being called currently and
there is no way to call them from Python).

Code is partially tested and works well enough for initial commit. There
are probably many small bugs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152506 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10 21:05:05 +00:00
Gregory Szorc
d3ac784fbb [llvm.py] Make LLVMObject.__del__ work if called during __init__
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152505 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10 21:01:14 +00:00
Gregory Szorc
b7487d4edc [llvm.py] Define enumerations from Core.h; add OpCode class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152483 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10 05:50:56 +00:00
Gregory Szorc
61e22cd85c [llvm.py] Implement interface to object files
It is now possible to load object files and scan over sections, symbols,
and relocations! Includes test code with partial coverage.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152482 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10 04:41:24 +00:00
Gregory Szorc
07c32218f4 [llvm.py] Make ObjectFile destructor work
Previous code had a double free in MemoryBuffer. The tests now pass.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152422 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-09 18:56:33 +00:00
Gregory Szorc
5ae04279e0 [llvm.py] Initial skeleton for Python LLVM bindings
This contains a semi-functional skeleton for the implementation of the
LLVM bindings for Python.

The API for the Object.h interface is roughly designed but not
implemented. MemoryBufferRef is implemented and actually appears to
work!

The ObjectFile unit test fails with a segmentation fault because the
LLVM library isn't being properly initialized. The build system doesn't
know about this code yet, so no alerts should fire.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152397 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-09 09:07:35 +00:00
Benjamin Kramer
efde86753d ocaml bindings: landing pad is now the last opcode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149997 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-07 18:58:19 +00:00
Jim Grosbach
c48d4dc8a9 Tidy up. s/Low Level Virtual Machine/LLVM/.
LLVM isn't an acronym anymore.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148985 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25 22:00:23 +00:00
Bob Wilson
eaf0608891 Update OCaml bindings for the new half float type.
Patch by Jonathan Ragan-Kelley!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147314 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-28 18:51:08 +00:00
Dylan Noblesmith
9421406aad drop unneeded config.h includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147197 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-22 23:04:07 +00:00
Daniel Dunbar
4ab406d7fc LLVMBuild: Remove trailing newline, which irked me.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146409 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-12 19:48:00 +00:00
Wojciech Matyjewicz
6f274a5e81 Minor fixes in Makefiles for the OCaml bindings:
1. Interface files (.mli) are installed before compiled interface
   files (.cmi) to preserve timestamp relation.
2. install-meta should use $(OcamlDir) instead of $(ObjDir).
3. Declared some targets as .PHONY.

Patch by Christophe Raffalli.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144183 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-09 12:00:39 +00:00
Daniel Dunbar
a3a2dfd4a2 build: Add initial cut at LLVMBuild.txt files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143634 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-03 18:53:17 +00:00
Torok Edwin
ff616cb440 OCaml bindings: add some missing functions and testcases.
The C bindings exposed some APIs that weren't covered by the OCaml bindings

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141997 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14 20:38:33 +00:00
Torok Edwin
0be167bab2 OCaml bindings: fix attributes to use all 32 bits
OCaml's int is limited to 31 bits on 32-bit architectures, so use Int32
explicitly.
Also add an unpack_attr, and {function,param,instr}_attr functions to read
the attributes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141996 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14 20:38:24 +00:00
Torok Edwin
8da43bf60e OCaml bindings: add icmp_predicate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141995 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14 20:38:19 +00:00
Torok Edwin
2c4ae181c4 OCaml bindings: fix infinite recursion on string_of_lltype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141994 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14 20:38:14 +00:00
Torok Edwin
6b228e506f bindings: named struct support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141993 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14 20:38:08 +00:00
Torok Edwin
4c4b71cec5 ocaml bindings: add findlib META support
This makes it easier to link against LLVM libs, especially if you are using
_oasis.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141992 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14 20:38:02 +00:00
Torok Edwin
3dd1674186 ocaml bindings: introduce classify_value
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141991 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14 20:37:56 +00:00
Torok Edwin
6563c87996 ocaml bindings: add getopcode for constant and instruction, and int64_of_const.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141990 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14 20:37:49 +00:00
Torok Edwin
31116410de bindings: tab and indentation fixes of my previous commits
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141989 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-14 20:37:42 +00:00
Torok Edwin
ff12c99d13 ocaml/C bindings: type->isSized()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141288 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 12:13:28 +00:00
Torok Edwin
4917ec9ec7 add binding to read icmp predicate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141287 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 12:13:20 +00:00
Torok Edwin
4f661ab0fb ocaml/C bindings: getmdstring, add num_op, get_op should work on metadata too
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141286 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 12:13:11 +00:00
Torok Edwin
c44943ed4f C/OCaml API to retrieve struct name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141285 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 12:12:50 +00:00
Torok Edwin
624c5edcd4 ocaml bindings: add llvm_ipo based on IPO.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141284 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-06 12:12:27 +00:00
Torok Edwin
48488a64fa attempt to fix ocaml bindings: landing pads
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140991 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-03 06:41:46 +00:00
Peter Collingbourne
e1686b08e4 Remove the build_unwind function from the OCaml bindings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137193 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-10 01:10:17 +00:00
Benjamin Kramer
e2721f7550 Remove InvalidateStructLayoutInfo from the ocaml bindings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136582 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-31 01:12:39 +00:00
Nick Lewycky
7c72c927c5 Update OCaml bindings. Opaque types are gone, type holders are gone and the
module operations that operate on type names are gone.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134839 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-09 18:29:33 +00:00
Erick Tryzelaar
01b4ccb6f7 Fix compiling the ocaml kaleidoscope tutorials
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125202 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-09 18:32:02 +00:00
Torok Edwin
a156efdf71 Fix OCaml bindings crash, PR8847.
See http://caml.inria.fr/mantis/view.php?id=4166
If we call only external functions from a module, then its 'let _' bindings
don't get executed, which means that the exceptions don't get registered for use
in the C code.
This in turn causes llvm_raise to call raise_with_arg() with a NULL pointer and
cause a segmentation fault.

The workaround is to declare all 'external' functions as 'val' in these .mli
files.

Also added a separate testcase (the testcase must call only external functions
for the bug to occur).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122497 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-23 15:49:26 +00:00
Eric Christopher
c9f1cddc51 Try to fix ocaml bindings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116021 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-08 00:36:21 +00:00
Duncan Sands
26bb406c16 Remove the Ada bindings which are unmaintained and unused. The project which
was the main putative user of the binding is actually maintaining its own
different binding, see http://git.ada.cx/cgi-bin/cgit.cgi/draco.git/


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113960 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-15 08:17:10 +00:00
Dale Johannesen
bb811a2445 Add X86 MMX type to bitcode and Type.
(The Ada bindings probably need it too, but all the
obvious places to change say "do not edit this file".)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113618 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10 20:55:01 +00:00
Benjamin Kramer
13ba2f9714 Remove unions from the ocaml bindings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112363 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-28 09:47:42 +00:00
Bill Wendling
4e34d50272 - Add the LinkerPrivateWeakDefAutoLinkage to the Ada bindings.
- Support the LinkerWeak*Linkage types in llvm-nm and in LinkModules.cpp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111952 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-24 20:00:52 +00:00
Bob Wilson
d6850b0f37 Fix a typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111627 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-20 14:54:37 +00:00
Erick Tryzelaar
f7af931930 Expose LLVMSetOperand and LLVMGetNumOperands to llvm-c and ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111625 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-20 14:51:22 +00:00
Erick Tryzelaar
e127410550 Fix arguments to ocaml's llvm_params.
Thanks to Jianzhou Zhao for finding this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111624 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-20 14:51:16 +00:00
Bill Wendling
5e721d7682 Implement the "linker_private_weak" linkage type. This will be used for
Objective-C metadata types which should be marked as "weak", but which the
linker will remove upon final linkage. However, this linkage isn't specific to
Objective-C.

For example, the "objc_msgSend_fixup_alloc" symbol is defined like this:

      .globl l_objc_msgSend_fixup_alloc
      .weak_definition l_objc_msgSend_fixup_alloc
      .section __DATA, __objc_msgrefs, coalesced
      .align 3
l_objc_msgSend_fixup_alloc:
       .quad   _objc_msgSend_fixup
       .quad   L_OBJC_METH_VAR_NAME_1

This is different from the "linker_private" linkage type, because it can't have
the metadata defined with ".weak_definition".

Currently only supported on Darwin platforms.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107433 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-01 21:55:59 +00:00
Bill Wendling
07d3177117 Revert r107205 and r107207.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107215 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29 22:34:52 +00:00
Bill Wendling
207855cff9 Introducing the "linker_weak" linkage type. This will be used for Objective-C
metadata types which should be marked as "weak", but which the linker will
remove upon final linkage. For example, the "objc_msgSend_fixup_alloc" symbol is
defined like this:

       .globl l_objc_msgSend_fixup_alloc
       .weak_definition l_objc_msgSend_fixup_alloc
       .section __DATA, __objc_msgrefs, coalesced
       .align 3
l_objc_msgSend_fixup_alloc:
        .quad   _objc_msgSend_fixup
        .quad   L_OBJC_METH_VAR_NAME_1

This is different from the "linker_private" linkage type, because it can't have
the metadata defined with ".weak_definition".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107205 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29 21:24:00 +00:00
Chris Lattner
0941534c71 add attributes and module level asm to the ocaml bindings,
patch by Patrick Walton!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100932 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-10 17:52:58 +00:00
Erick Tryzelaar
49457b8158 Add OCaml tutorial to the examples.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97966 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-08 19:32:27 +00:00
Erick Tryzelaar
e623050048 Add a LLVMWriteBitcodeToFD that exposes the raw_fd_ostream options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97858 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-06 00:30:06 +00:00
Erick Tryzelaar
7eb4beb4cd Expose the rest of the llvm-c scalar opts to ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97685 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-03 23:51:34 +00:00
Erick Tryzelaar
9c7c566efe Rename some ocaml functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97684 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-03 23:51:30 +00:00
Erick Tryzelaar
7b3afb4547 Expose the external functions for ocaml's execution engine as an optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97683 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-03 23:51:28 +00:00
Erick Tryzelaar
4ad188ba8d Expose alignment and stack alignment attributes to llvm-c and ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97682 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-03 23:51:25 +00:00
Erick Tryzelaar
6bd7730426 Use the ocaml tag 0 since we are just returning an option value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97612 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-02 23:59:08 +00:00
Erick Tryzelaar
df75eb64a7 Don't use an ocaml keyword in an ocamldoc comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97611 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-02 23:59:05 +00:00
Erick Tryzelaar
0dd27da184 Expose the optimization level for the jit in ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97610 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-02 23:59:03 +00:00
Erick Tryzelaar
16609f3c5c Remove module providers from ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97609 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-02 23:59:00 +00:00
Erick Tryzelaar
705443ffd3 Add support for use to ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97586 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-02 20:32:32 +00:00
Erick Tryzelaar
b65c5f2ec3 Add support getting the operands of a User to ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97414 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 20:45:03 +00:00
Erick Tryzelaar
6ba5c56cf5 Add support for global aliases to ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97413 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 20:44:58 +00:00
Erick Tryzelaar
ce89b4e66f Add support for inserting inline asm to ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97412 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 20:44:53 +00:00
Erick Tryzelaar
5b0a7741ad Add support for getting a null pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97380 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 09:46:27 +00:00
Erick Tryzelaar
d80ce75687 Add a way to look up a type by it's name in a module.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97379 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 09:46:21 +00:00
Erick Tryzelaar
68bab9833d Add replace_all_uses_with to ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97378 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 09:46:16 +00:00
Erick Tryzelaar
8e130b1d0d Add support for global variables in an address space for llvm-c and ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97377 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 09:46:13 +00:00
Erick Tryzelaar
c59286bff1 Add indirect br support to llvm-c and ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97376 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 09:46:06 +00:00
Erick Tryzelaar
46c80e0c56 Add metadata functions to llvm-c and ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97375 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 09:45:59 +00:00
Erick Tryzelaar
19f047f5f6 Add the new builder arthmetic instructions to llvm-c and ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97372 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 05:51:43 +00:00
Erick Tryzelaar
1940dd10dd Add the new union arthmetic instructions to llvm-c and ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97371 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 05:51:33 +00:00
Erick Tryzelaar
628b76ecb3 Fix incorrect uses of an ocaml llbuilder without extracting it from ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97368 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 05:51:16 +00:00
Erick Tryzelaar
d2b4aff4bc Remove malloc and free from the ocaml bindings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97367 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 05:51:09 +00:00
Jeffrey Yasskin
70b7007307 Fix the ocaml bindings for the bitcode reader.
llvm_get_module_provider() was returning a value of the wrong type.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97290 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27 00:25:18 +00:00
Erick Tryzelaar
1430425539 Fix some ocaml documentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96323 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16 03:45:17 +00:00
Chris Lattner
c3c3be582d fix llvm_build_struct_gep for PR6167, patch by
Peter Hawkins!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95644 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-09 01:39:46 +00:00
Jakob Stoklund Olesen
570a4a5d9c Reintroduce the InlineHint function attribute.
This time it's for real! I am going to hook this up in the frontends as well.

The inliner has some experimental heuristics for dealing with the inline hint.
When given a -respect-inlinehint option, functions marked with the inline
keyword are given a threshold just above the default for -O3.

We need some experiments to determine if that is the right thing to do.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95466 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-06 01:16:28 +00:00
Chris Lattner
dd7da4f368 This corrects an error in the type of the Llvm.dispose_context function.
Patch by James Woodyatt!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94343 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-24 00:25:09 +00:00
Erick Tryzelaar
263d989a71 Fix bug 5992: O'Caml's llvm_create_module was treating the context as a string.
Thanks Andy Ray for catching this!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93588 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-15 23:49:16 +00:00
Eric Christopher
606a1d1f59 Remove the InlineHint attribute. There are no current or planned
users.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93558 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-15 21:36:30 +00:00
Bob Wilson
3994b4b05e Fix another parallel make race condition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91709 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-18 20:12:14 +00:00
Erick Tryzelaar
f24bfa7f79 Expose the rest of the attribute settings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82965 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-28 04:42:47 +00:00
Erick Tryzelaar
4aee041000 Fix a bug in ocaml bindings that has incorrect linkage options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82964 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-28 04:42:36 +00:00
Erick Tryzelaar
4626268428 Expose initializing the native target for the execution engine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81800 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 21:54:32 +00:00
Bob Wilson
ae77a20148 Fix pr4820: Don't run llvm-config during "make clean" since it may have
already been removed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81547 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-11 18:42:18 +00:00
Erick Tryzelaar
52248ff682 Fix header comment for bindings/ocaml/llvm/Makefile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80526 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-30 23:41:20 +00:00
Erick Tryzelaar
b02b878827 Convert the rest of the ocaml types and functions to use context.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79430 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 17:32:24 +00:00
Erick Tryzelaar
6793dd9769 Add the ocaml binding to LLVMBuildAggregateRet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79414 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 08:37:00 +00:00
Erick Tryzelaar
5371aa2a1c Allow passing around LLVMContext in ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79410 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 06:40:29 +00:00
Edward O'Callaghan
e1b80b6946 LLVM Ada language bindings. Credit to Rod Kay and the AuroraUX team.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79295 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 00:24:36 +00:00
Erick Tryzelaar
45d6ac2cc1 Expose creating constant ints and floats from strings to ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79214 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16 23:37:03 +00:00
Erick Tryzelaar
5c1c208296 Add an llvm-c function that lets you insert an instruction with a name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79163 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16 02:20:57 +00:00
Erick Tryzelaar
1b42cfd1ca Expose most of the Constant creation functions to ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79162 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16 02:20:37 +00:00
Erick Tryzelaar
e0f8bf6cbe Expose most of the IRBuilder functionality to ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79161 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16 02:20:24 +00:00
Erick Tryzelaar
86c9d6b33b Fix comment in llvm.mli.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78591 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-10 19:45:00 +00:00
Erick Tryzelaar
2b526fec6a Fix docstring for ocaml binding's const_float.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78589 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-10 19:44:45 +00:00
Bob Wilson
32eaeca34f Reorder the "Metadata" entry to match the C bindings.
This fixes a regression in the vmcore.ml dejagnu test.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76657 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 21:52:57 +00:00
Reid Kleckner
4b1511b027 Add EngineBuilder to ExecutionEngine in favor of the five optional argument EE::create().
Also a test commit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76276 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-18 00:42:18 +00:00
Bob Wilson
e46161f10c Fix the Ocaml bindings for the ExecutionEngine: with the change to build
libraries instead of relinked objects, the interpreter, JIT, and native
target libraries were not being linked in to an ocaml program using the
ExecutionEngine.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74117 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 21:09:18 +00:00
Chris Lattner
1d97ca85ad remove dead makefile flags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74064 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 05:28:55 +00:00
Nick Lewycky
7a0370f66a Give embedded metadata its own type instead of relying on EmptyStructTy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72610 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-30 05:06:04 +00:00
Duncan Sands
2f82376c48 Hopefully fix the build for people with ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72254 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-22 09:22:17 +00:00
Duncan Sands
ef854af5bd Add a getAlignOf helper for getting the ABI alignment of a
type as a target independent constant expression.  I confess
that I didn't check that this method works as intended (though
I did test the equivalent hand-written IR a little).  But what
could possibly go wrong!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72213 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-21 15:52:21 +00:00
Duncan Sands
777d2306b3 Rename PaddedSize to AllocSize, in the hope that this
will make it more obvious what it represents, and stop
it being confused with the StoreSize.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71349 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-09 07:06:46 +00:00
Duncan Sands
e149e9960b OCaml parameter attribute bindings from PR2752.
Incomplete, but better than nothing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71081 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-06 12:21:17 +00:00
Bill Wendling
610079287e Fix the JIT bindings for ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70454 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-30 00:43:39 +00:00