Peter Zotov
e7255da917
[OCaml] Add a slash accidentally omitted from Makefile
...
llvm-svn: 195912
2013-11-28 09:03:28 +00:00
Peter Zotov
40a5d378f6
[OCaml] Embed rpath into stub libraries and native executables
...
This commit embeds a set of linker flags with hardcoded paths to
the LLVM shared library on --enable-shared builds into .cmxa files
and stub dynamic libraries. This solution closely follows existing
rules for rpath in the LLVM tools, which had to be modified because
of differences in toolchain.
Without this patch, OCaml tests as well as opam bindings broke,
as neither of those updates LD_LIBRARY_PATH to include
the $prefix/lib directory.
llvm-svn: 195834
2013-11-27 11:03:18 +00:00
Peter Zotov
5d35f2ce03
[OCaml] Embed the flags necessary for linking with libLLVM.so into .cmxa files
...
llvm-svn: 195782
2013-11-26 20:40:34 +00:00
Peter Zotov
05c091455e
[OCaml] Unbreak make install by providing ocamldoc target
...
llvm-svn: 195336
2013-11-21 10:10:16 +00:00
Anders Waldenborg
01af07a169
python: Fix check for disasm creation failure
...
Check should be for pointer being NULL, not what it points to.
Also adds a test for this case.
Reviewed By: indygreg
Differential Revision: http://llvm-reviews.chandlerc.com/D1878
llvm-svn: 194965
2013-11-17 15:40:57 +00:00
Anders Waldenborg
6a105e9964
python: Properly initialize before trying to create disasm
...
As the "LLVMInitializeAll*" functions are not available as symbols in
the shared library they can't be used, and as a workaround a list of
the targets is kept and the individual symbols tried. As soon as the
"All"-functions are changed to proper symbols (as opposed to static
inlines in the headers) this hack will be replace with simple calls
to the corresponding "LLVMInitializeAll*" functions.
Reviewed By: indygreg
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1879
llvm-svn: 194964
2013-11-17 15:17:08 +00:00
Peter Zotov
0c7f2977ca
[OCaml] Add Target and TargetMachine bindings to Llvm_target
...
llvm-svn: 194774
2013-11-15 02:51:57 +00:00
Peter Zotov
8a1a3bfc05
[OCaml] Refactor Llvm_target interface
...
This commit brings the module structure, argument order and
primitive names in Llvm_target in order with the rest of the bindings,
in preparation for adding TargetMachine API.
llvm-svn: 194773
2013-11-15 02:51:44 +00:00
Peter Zotov
b4fb964b99
[OCaml] Fix building of stub libraries
...
llvm-svn: 194772
2013-11-15 02:51:27 +00:00
Peter Zotov
9410f77b9f
[OCaml] Build stub OCaml libraries for all configured targets
...
This allows to only link in the needed targets, reducing binary
size and more importantly link time.
Note that this is an incomplete implementation: currently,
LLVM does not have the plumbing which would allow to conditionally
link in AsmPrinter, AsmParser and Disassembler for the targets
which support them. This should be improved in the future.
llvm-svn: 194670
2013-11-14 06:34:21 +00:00
Peter Zotov
ea5b2e7493
[OCaml] Expose LLVM's fatal error and stacktrace APIs
...
llvm-svn: 194669
2013-11-14 06:34:13 +00:00
Peter Zotov
7b321f832f
[OCaml] Dynamically link LLVM on --enable-shared builds
...
This commit significantly speeds up both bytecode and native
builds of LLVM clients (from ~20 second to sub-second link time),
and allows to invoke LLVM functions from OCaml toplevel.
The behavior for --disable-shared builds is unchanged.
llvm-svn: 194509
2013-11-12 20:55:49 +00:00
Peter Zotov
b1d1388ee3
[OCaml] Fix a typo
...
llvm-svn: 194508
2013-11-12 20:55:42 +00:00
Peter Zotov
18636a8777
[OCaml] Add missing Llvm_target functions
...
llvm-svn: 194382
2013-11-11 14:47:28 +00:00
Peter Zotov
dfa957746c
[OCaml] Accept context explicitly in Llvm_target functions
...
Llvm_target.intptr_type used to implicitly use global context. As
none of other functions in OCaml bindings do, it is changed to
accept context explicitly.
llvm-svn: 194381
2013-11-11 14:47:20 +00:00
Peter Zotov
d52cf17584
[OCaml] Make Llvm_target.DataLayout.t automatically managed
...
This breaks the API by removing Llvm_target.DataLayout.dispose.
llvm-svn: 194380
2013-11-11 14:47:11 +00:00
Peter Zotov
578267fb73
[OCaml] Impement Llvm_irreader, bindings to LLVM assembly parser
...
llvm-svn: 194138
2013-11-06 09:21:25 +00:00
Peter Zotov
d10ae6c527
[OCaml] Implement Llvm.string_of_llvalue
...
llvm-svn: 194136
2013-11-06 09:21:08 +00:00
Peter Zotov
a4b2ac4c30
[OCaml] (PR16190) Add ValueKinds for ConstantDataSequential and subclasses
...
Original patch by David Monniaux
llvm-svn: 194075
2013-11-05 12:55:43 +00:00
Peter Zotov
28f6876ecc
[OCaml] (PR16318) Add missing argument to Llvm.const_intcast
...
llvm-svn: 194065
2013-11-05 11:56:20 +00:00
Peter Zotov
ce7a91b277
[OCaml] (PR11717) Make declare_qualified_global respect address argument
...
Original patch by Jonathan Ragan-Kelley
llvm-svn: 194064
2013-11-05 11:56:13 +00:00
Peter Zotov
04a0e5050f
[OCaml] Properly tag the custom operations of Llvm.llbuilder
...
All other custom operations tags have LLVM prefix.
llvm-svn: 194058
2013-11-05 09:13:46 +00:00
Peter Zotov
a4c2a3e6b6
[OCaml] Llvm_linker: do not use external in module interface
...
Workaround for an OCaml bug:
http://caml.inria.fr/mantis/view.php?id=4166
llvm-svn: 194057
2013-11-05 09:13:39 +00:00
Peter Zotov
7fc270a171
[OCaml] implement Llvm_passmgr_builder, bindings for PassManagerBuilder
...
llvm-svn: 193968
2013-11-04 01:39:42 +00:00
Peter Zotov
0ce99d90be
[OCaml] Documentation
...
llvm-svn: 193967
2013-11-04 01:39:31 +00:00
Peter Zotov
0f22bab63f
[OCaml] Implement missing LLVMCore APIs
...
llvm-svn: 193966
2013-11-04 01:39:26 +00:00
Peter Zotov
9c601e108d
[OCaml] Formatting
...
llvm-svn: 193965
2013-11-04 01:39:18 +00:00
Peter Zotov
311548cdad
[OCaml] Implement Llvm.MemoryBuffer.{of_string,as_string}
...
llvm-svn: 193953
2013-11-03 08:27:45 +00:00
Peter Zotov
6f65440dd2
[OCaml] Fix ABI incompatibility
...
OCaml's type unit is not compatible with C's type void.
llvm-svn: 193952
2013-11-03 08:27:37 +00:00
Peter Zotov
45451cf62a
[OCaml] Implement Llvm_linker, bindings for the IR linker
...
llvm-svn: 193951
2013-11-03 08:27:32 +00:00
Peter Zotov
cbae39416f
[OCaml] Implement Llvm_vectorize bindings
...
llvm-svn: 193950
2013-11-03 08:27:22 +00:00
Peter Zotov
bc7c0d36d0
[OCaml] Llvm_target: fix typo (Int_val instead of Int64_val)
...
llvm-svn: 193948
2013-11-03 08:27:08 +00:00
Peter Zotov
3e0c21ed53
[OCaml] Llvm_scalar_opts: add missing transforms
...
llvm-svn: 193946
2013-11-03 07:54:17 +00:00
Peter Zotov
e4deac7b4a
[OCaml] Llvm_ipo: add missing transforms
...
llvm-svn: 193945
2013-11-03 07:54:08 +00:00
Sylvestre Ledru
4fe1606bb8
OCaml bindings: fix typo
...
Patch by Peter Zotov
llvm-svn: 193851
2013-11-01 02:29:13 +00:00
Sylvestre Ledru
9cd42ec214
OCaml bindings: remove unused DONT_BUILD_RELINKED from Makefiles
...
Patch by Peter Zotov
llvm-svn: 193847
2013-11-01 01:14:24 +00:00
Sylvestre Ledru
d9af1157f6
OCaml bindings: fix typo
...
Patch by Peter Zotov
llvm-svn: 193845
2013-11-01 01:10:58 +00:00
Sylvestre Ledru
a98db32b96
OCaml bindings: fix typo in documentation
...
Patch by Peter Zotov
llvm-svn: 193838
2013-11-01 00:30:02 +00:00
Sylvestre Ledru
493cd8c09b
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
llvm-svn: 193836
2013-11-01 00:26:01 +00:00
Michael Gottesman
3369612808
[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.
llvm-svn: 190477
2013-09-11 01:38:12 +00:00
Michael Gottesman
cffd45b2e1
[python-bindings] Added support for iterating over a basic blocks instructions, getting their name/dumping them, f/b iteration.
...
Tests are included.
llvm-svn: 190475
2013-09-11 01:17:38 +00:00
Michael Gottesman
6cf2e86139
[python-bindings] Added support for iterating over a function's basic blocks, dumping/getting names of those bb, f/w iteration.
...
Tests are included.
llvm-svn: 190473
2013-09-11 01:01:40 +00:00
Michael Gottesman
e0cbb294cb
[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.
llvm-svn: 190471
2013-09-11 00:52:47 +00:00
Michael Gottesman
d99f387f5e
[python-bindings] Export OpCode from core.py.
...
llvm-svn: 190468
2013-09-11 00:41:07 +00:00
Michael Gottesman
28ff44ab37
[python-bindings] Added test for reading a module from bitcode.
...
llvm-svn: 190467
2013-09-11 00:41:05 +00:00
Michael Gottesman
b67ef22556
[python-bindings] Fixed 3 test failures caused by typos.
...
llvm-svn: 190465
2013-09-11 00:41:02 +00:00
Michael Gottesman
1e4e6fb892
Fixed typo.
...
llvm-svn: 190459
2013-09-11 00:27:23 +00:00
Michael Gottesman
fd690f38b3
[python-bindings] Added code for loading a module from bitcode, getset its datalayout, getset its target, dump it, print it to a file.
...
llvm-svn: 190458
2013-09-11 00:23:14 +00:00
Michael Gottesman
b507e3ed8b
[python-bindings] Added bindings for LLVMContextRef and a test for creating a new context or getting the global context.
...
llvm-svn: 190457
2013-09-11 00:23:10 +00:00
Michael Gottesman
41eee30cd7
[python-bindings] Implemented the PassRegistry class and the calls to initialize/shutdown llvm. Also included an initialize_llvm declaration.
...
llvm-svn: 190456
2013-09-11 00:23:08 +00:00