Siu Kwan Lam
2410267c8e
Disable isolated test in conda build
2014-03-13 13:20:08 -05:00
Siu Kwan Lam
bc12aae8c1
Hashable Module and fix Module __eq__
2014-03-11 15:17:06 -05:00
Siu Kwan Lam
6578412437
Add binding for dynamic library loading
2014-03-06 11:58:40 -06:00
Siu Kwan Lam
b86cc097d9
Fix deprecated function use
2014-02-18 14:13:40 -06:00
Siu Kwan Lam
3db6d8352a
Fix isolated test runner
2014-01-16 18:34:19 -06:00
Siu Kwan Lam
4ed8f80774
Fix avx_support; only run check_intrinsics for conda build test
2014-01-16 17:03:40 -06:00
Siu Kwan Lam
43095609c3
Add intrinsic check
2014-01-16 16:49:23 -06:00
Siu Kwan Lam
b9cccbf9ae
Close everything properly
2014-01-16 11:22:52 -06:00
Siu Kwan Lam
17d3cef4bd
Fix build_pass_manager fpm handling
2013-12-31 16:57:45 -06:00
Siu Kwan Lam
ecac668bef
Fix inline threshold and add size level
2013-12-27 22:21:33 -06:00
Siu Kwan Lam
078f1fe5c1
Move capsule code into C++
2013-12-23 17:17:12 -06:00
Siu Kwan Lam
b9752e1e98
Add deprecated module and deprecate alloca_array
2013-12-20 12:26:35 -06:00
Siu Kwan Lam
f8c1c78df1
Leaner
2013-12-18 15:25:14 -06:00
Siu Kwan Lam
b8e0338da8
Add AllocaInstruction
2013-12-18 10:43:11 -06:00
Siu Kwan Lam
091a393d1d
insert_value, extract_value can be multiple dimensional
2013-12-16 14:05:19 -06:00
Siu Kwan Lam
4e814b7d53
skip test for building executable from native object and assembly on OSX
2013-11-11 12:20:43 -06:00
Siu Kwan Lam
8a6dd7af7f
fix loop-vectorize for llvm-3.3
2013-11-05 16:58:20 -06:00
Siu Kwan Lam
bf5859be7e
fix bad version checking which disables auto-vectorization for llvm 3.3
2013-11-01 16:50:53 -05:00
Siu Kwan Lam
18d3b4809f
Fix py2.6--use Popen instead of check_output
2013-10-05 13:55:26 +08:00
Siu Kwan Lam
a82e876f93
Add test skipping to disable arch specific tests conditionally
2013-10-05 13:37:04 +08:00
Siu Kwan Lam
fac1bc782d
Reorganize and cleanup tests
2013-10-04 15:24:30 +08:00
Siu Kwan Lam
ea452bd33c
Fix test
2013-09-30 17:18:30 -05:00
Siu Kwan Lam
ddf2007553
Adjust test for win32 x86 ABI
2013-09-30 17:13:06 -05:00
Siu Kwan Lam
e7a7896710
Adjust test for win32 amd64 ABI
2013-09-30 16:59:46 -05:00
Siu Kwan Lam
69a78d0a54
Test ABI for structures and reorganize tests a bit.
2013-09-30 16:24:26 -05:00
Siu Kwan Lam
733fd7d18e
fix missing re-export for old llvm.ee symbols
2013-09-19 15:05:29 -05:00
Siu Kwan Lam
6e55bfc406
fix spaces redundant trailing spaces and missing line break at EOF
2013-09-18 11:58:05 -05:00
anthony cantor
72192c7e6a
fixed documentation typo
2013-09-18 11:52:22 -05:00
anthony cantor
aa264cee2d
added align parameter to llvm.mc.Disassembler.decode
...
i cant find any method in llvm to automatically get the
correct instruction alignment for disassembling. i thought
it would be MCAsmInfo.getMinInstAlignment, but that value is
1 for the ARM target machine. since that is clearly the wrong
instruction alignment for disassembling arm, the user should
be able to configure the alignment to whatever is needed.
2013-09-18 11:52:22 -05:00
anthony cantor
3743146121
only convert input bytes if they are a string and we are in python 3
...
in python 2 'str' and 'bytes' are the same. if input bytes are not
a string or bytes, then raise a TypeError.
2013-09-18 11:52:22 -05:00
anthony cantor
8de5c3faff
added some methods to llvm.mc.Operand
...
methods that describe what type of operand it is
2013-09-18 11:52:22 -05:00
anthony cantor
083586464b
add bindings for instruction description methods to MCInstrDesc
...
use these new bindings instead of MCInstrAnalysis bindings in
llvm.mc.Instr because MCInstrAnalaysis is just a thin layer
encapsulating MCInstrInfo that seems largely pointless.
2013-09-18 11:52:22 -05:00
anthony cantor
0f3d5a8127
decode yields a tuple of integers instead of a bytearray
...
a tuple of integers is immutable and more similar to python 3
bytes than bytearray
2013-09-18 11:52:22 -05:00
anthony cantor
3e77a55de3
added methods to Instr which describe possible branch/terminator properties
2013-09-18 11:52:22 -05:00
anthony cantor
65c4558cac
added opcode property to llvm.mc.Instr
2013-09-18 11:52:22 -05:00
anthony cantor
43f7330fda
llvm.mc.Disassembler.decode now yields the byte sequence which generated the instruction
...
added custom method to extra.h to return a PyBytes object
from the bytes read from MemoryObject.readBytes.
also moved the generic methods from StringRefMemoryObject
up to MemoryObject
2013-09-18 11:52:22 -05:00
anthony cantor
1d735e49d2
fix python2/3 incompatibility
...
bytes built-in is different in python2
2013-09-18 11:52:22 -05:00
anthony cantor
fea82991c3
convert str input to bytes
...
StringRefMemoryObject constructor binding specifies bytes as
its input parameter, so we have to convert it.
2013-09-18 11:52:22 -05:00
anthony cantor
3c06f0d590
add flags, ts_flags properties for Instr class
2013-09-18 11:52:22 -05:00
anthony cantor
7234b0d200
use getRegInfo instead of creating a register info object
...
also raise exception if a property is accessed which is not
available on that particular TargetMachine.
2013-09-18 11:52:22 -05:00
anthony cantor
8dbfc377ad
added functionality to llvm.mc.Instr to print itself
...
uses binding of printInst on MCInstPrinter for printing
instruction.
also fixed a bug in llvm.mc.Disassembler.decode: idx should
start at zero, and we should pass code.getBase() + idx to
getInstruction. idx must start at zero because the while loop
compares it against code.getExtent() which returns only the
length of bs.
2013-09-18 11:52:21 -05:00
anthony cantor
82d9c787f3
added llvm.mc.Operand class
...
Operand encapsulates information that llvm provides about an MCOperand
in an instruction.
2013-09-18 11:52:21 -05:00
anthony cantor
fa26aa1651
fix typo
2013-09-18 11:52:21 -05:00
anthony cantor
cbf4a61a17
moved the MC data type access to TargetMachine
...
Disassembler now simply needs a TargetMachine object
and it will be able to access all the descriptor objects
it needs for disassembly through the target machine.
2013-09-18 11:52:21 -05:00
anthony cantor
e65f6174a7
some fixes so that test/testall.py will run
...
some easy changes to core.py which were just conditionals on llvm
version. for the broken tests which i didnt know how to fix i
simply disabled them.
2013-09-18 11:52:21 -05:00
anthony cantor
83299a20a6
refactor TargetMachine into a new target module
...
TargetMachine is generally useful outside of the execution engine
context so i think it makes sense to move it into its own module.
2013-09-18 11:52:21 -05:00
anthony cantor
4eab936224
added new MC classes for richer disassembling functionality
2013-09-18 11:52:21 -05:00
anthony cantor
78be6a7f5f
conditionals for compatibility with llvm < 3.4
...
i only intend to support MC bindings (and anything reliant on MC)
for llvm 3.4 and greater.
2013-09-18 11:52:21 -05:00
anthony cantor
bc02b3d90a
use (llvm 3.4) built in StringRefMemoryObject instead of BytesMemoryObject
2013-09-18 11:52:21 -05:00
anthony cantor
aa0ee9b6a6
changes to make llvmpy compatible with development branch of llvm
...
mostly just removing stuff and changing function prototypes.
with these changes, llvmpy compiles and llvm.test() passes.
2013-09-18 11:52:21 -05:00