Siu Kwan Lam
7af2f71403
Merge branch 'llvm-3.4' of https://github.com/gentoo90/llvmpy into gentoo90-llvm-3.4
2014-04-28 11:11:38 -05:00
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
gentoo90
8a0778e75a
Add opcode AddrSpaceCast (45) and shift other opcodes
2014-02-23 01:12:49 +02: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