Branches

llvm-translation-backend

View source
llvm-translation-backend
Author Commit Message Labels Comments Date
250+ commits behind default.
Manuel Jacob
hg merge default
Manuel Jacob
hg merge default
Manuel Jacob
Fix compatibility with LLVM 3.6 (and drop support for older versions).
Manuel Jacob
Add errno.h include to threadlocal.c.
Manuel Jacob
Fix no_links_to_startblock().
Manuel Jacob
Pass more immutability hints to LLVM.
Manuel Jacob
Skip tests that test ordered dicts with refcounting.
Manuel Jacob
Implement length_of_simple_gcarray_from_opaque() operation.
Manuel Jacob
Add ignored 'is_minor' parameter to LLVMStackRootWalker.walk_stack_roots() to match the abstract signature.
Manuel Jacob
"Implement" new likely / unlikely operation pair by ignoring the hint.
Manuel Jacob
hg merge default
Manuel Jacob
Refactor the LLVMGCRoot stack walker for clarity.
Manuel Jacob
Fix or implement various things to make all tests pass and translation succeed.
Manuel Jacob
Adapt to removed obmalloc.
Manuel Jacob
hg merge default
Manuel Jacob
Implement int_force_ge_zero() llop.
Manuel Jacob
hg merge default
Manuel Jacob
Minor refactoring: slightly change the way struct names are handled.
Manuel Jacob
Move weakref and RTTI functionality out of OpaqueType.
Manuel Jacob
oops
Manuel Jacob
Rename PtrType.to() -> PtrType.tmp() to avoid ambiguity with PtrType's `to` attribute.
Manuel Jacob
minor style fix
Manuel Jacob
Explicitly pass -fno-rtti when compiling PyPyGC.cpp.
Manuel Jacob
Rename gc_header -> needs_gc_header.
Manuel Jacob
Reformat some too long lines.
Manuel Jacob
Move module-level code for building the BINARY_OPS dict into function _setup_binary_ops.
Manuel Jacob
Introduce PtrType.to classmethod to create temporary PtrType instances. Use them in more places.
Manuel Jacob
Rename is_gc -> gc_header.
Manuel Jacob
Generate simpler LLVM IR for adr_add() / adr_sub().
Manuel Jacob
Introduce the RPYTHON_LLVM_ASSEMBLY environment variable that makes the LLVM backend output human-readable IR/assembly files.
Manuel Jacob
hg merge default
Manuel Jacob
Fix raw_load() operation with addr of type Signed.
Manuel Jacob
Stop setting backend to llvm in translate.py. The idea was to run the buildbots with the LLVM translation backend without modification. However, this doesn't work because the binary name 'pypy-c' is hardcoded in parts of the build configuration.
Manuel Jacob
Disable cpyext (and cppyy, which depends on it) when translating with the llvm backend.
Manuel Jacob
Fix test_interactive.test_simple_source_llvm.
Manuel Jacob
Fix test_driver.test_ctr().
Manuel Jacob
Use rffi.size_and_sign() here. Unsplit rffi.size_and_sign() to reduce diff with default.
Manuel Jacob
hg merge default
Manuel Jacob
Don't try to parse LLVM datalayout.
Manuel Jacob
Rename type_ -> type.
Manuel Jacob
Fix import of lltype_to_annotation.
Manuel Jacob
hg merge default
Manuel Jacob
Instead of setting the translation backend to llvm by default, set it only in translate.py.
Manuel Jacob
Support lshift and rshift operations where the RHS has another type than the LHS.
Manuel Jacob
Rename simple_op to binary_op.
Manuel Jacob
Move function around.
Manuel Jacob
Make sure pypy_debug_catch_fatal_exception is defined before its use.
Manuel Jacob
Add stub for debug_forked(). Where do all these new operations come from?
Manuel Jacob
Add debug_offset() and debug_flush() stubs to the LLVM translation backend.
Manuel Jacob
Instead of setting the LLVM translation backend by default, set it after the construction of the config object. This makes sure raisingop2direct_call is forced.
Manuel Jacob
Add llvm_* operations to llinterp.
Manuel Jacob
Remove some tab character probably copied from somewhere by accident.
Manuel Jacob
Set default translation backend to llvm to make the buildbot translate with it.
Manuel Jacob
hg merge default
Manuel Jacob
Remove modifications in multibytecodec.c/h - the compiler warning was silenced on default in another way.
Manuel Jacob
Remove this because it probably prevents the JIT from emitting efficient code for longlong on 32-bit. This breaks LLVM translation on 32-bit.
Manuel Jacob
Remove dead code.
Manuel Jacob
Remove hacks formerly required to run RTyper tests on top of GenLLVM.
Manuel Jacob
Don't run RTyper tests on top of GenLLVM. GenC doesn't, neither. They are too high-level and required some hacks to be runnable on GenLLVM. These hacks will be removed in the next commit.
Manuel Jacob
Adapt TestTypedOptimizedSwitchTestCaseLLVM.
Manuel Jacob
Kill dead import.
Manuel Jacob
hg merge default
Manuel Jacob
Simplify this and make sure it doesn't modify the argument.
Manuel Jacob
Remove this hack until something better comes into my mind.
Manuel Jacob
hg merge default
Manuel Jacob
Remove more trailing whitespace.
Manuel Jacob
Remove trailing whitespace.
Manuel Jacob
I don't think this is still necessary.
Manuel Jacob
Instead of marking every llexternal that calls a macro with a macro flag, we generate call wrappers for external functions by default. A call wrapper is a short C snippet that just calls the external function. This way we work on the API level instead of the ABI level, because the C compiler generates the actual code to call the external function. These functions are inlined because we use link-time optimization. One problem is currently that the call wrappers are not stripped from the binary.
Manuel Jacob
Kill __init__ of test mixin class because it's not supported by pytest and a very bad idea anyway.
Manuel Jacob
Remove commented out lines.
Manuel Jacob
Add const qualifiers here.
Manuel Jacob
hg merge default
Manuel Jacob
Fix datalayout fishing.
Manuel Jacob
hg merge default
Manuel Jacob
hg merge default
Manuel Jacob
The operation bare_raw_store() should emit the same code as raw_store().
Manuel Jacob
Adapt imports / test class names.
Manuel Jacob
hg merge default
Manuel Jacob
Ignore jit_conditional_call() operation.
Manuel Jacob
hg merge default
Manuel Jacob
Back out changeset 728c960f3c4b. This needs to be fixed in LLVM.
Manuel Jacob
hg merge default
Manuel Jacob
This little change greatly helps LLVM and doesn't change performance on C.
Manuel Jacob
hg merge default
Manuel Jacob
Fix ropenssl again.
Manuel Jacob
Refactor GenLLVM's _compile() and add comments to highlight the different steps.
Manuel Jacob
Ignore jit_ffi_save_result() operation.
Manuel Jacob
hg merge default
Manuel Jacob
hg merge default
Manuel Jacob
hg merge default
Manuel Jacob
Don't set config.translation.simplifying - it was removed in default.
Manuel Jacob
hg merge default - reverting this branch's changes in rpython/rlib/ropenssl.py.
Manuel Jacob
Work around rpython_startup_code issue.
Manuel Jacob
Skip test_longfloat because there seems to be a problem with ctypes.
Manuel Jacob
Remove test for test_rgeneric which was removed in the default branch.
Manuel Jacob
hg merge default
Manuel Jacob
hg merge default
Manuel Jacob
Silence pyflakes warnings that database/align were undefined.
Manuel Jacob
Adapt includes to work with LLVM SVN.
Manuel Jacob
Add a LLVM GC root finder which uses llvm's support for accurate garbage collection. The current implementation is inefficient but correct (it doesn't keep gc pointers alive longer than necessary).
Manuel Jacob
Explicitly call gc setup function instead of defining it as a module constructor.
Manuel Jacob
hg merge default
Manuel Jacob
Adapt llvm translation backend to rpython.rtyper.memory -> rpython.memory rename.
Manuel Jacob
hg merge default
Manuel Jacob
Use finish tables in GCPolicy.finish().
Manuel Jacob
hg merge default
Manuel Jacob
Fix casting of LongFloat to Bool.
Manuel Jacob
Fix one more import (pypy -> rpython renaming).
Manuel Jacob
Add support for LongFloat in the exception transformer.
Manuel Jacob
Change order arguments are passed to linker.
Manuel Jacob
Fix linking of static libraries.
Manuel Jacob
hg merge default
Manuel Jacob
Don't skip backend optimizations.
Manuel Jacob
Port test_recursive_llhelper from test_genc.
Manuel Jacob
Fix test_rstr/test_runicode by a hack.
Manuel Jacob
hg merge default
Manuel Jacob
hg merge default
Manuel Jacob
Add support for win32 calling convention.
Manuel Jacob
Refactor declarations of backend-specific external functions.
Manuel Jacob
Use link-time optimization.
Manuel Jacob
Limit line length to 79 columns.
Manuel Jacob
Fix pypy translation.
Manuel Jacob
Use os.devnull instead of '/dev/null'.
Manuel Jacob
Forgot adding (stub) common_header.h.
Manuel Jacob
Fix compilation after merging default.
Manuel Jacob
hg merge default
Manuel Jacob
hg merge default
Manuel Jacob
Add macro flag for pypy__is_nonnull_longdouble().
Manuel Jacob
Add more int128 operations.
Manuel Jacob
Implement the gc_gcflag_extra() operation.
Manuel Jacob
hg merge default
Manuel Jacob
Fix and refactor translation of tests.
Manuel Jacob
Modify GenC tests to use expected_exception_name.
Manuel Jacob
Fix LLVM translation backend after merging default into branch (not all tests pass yet).
Manuel Jacob
hg merge default
Manuel Jacob
hg merge default
Manuel Jacob
hg merge default
Manuel Jacob
Fix mangling of names which have to be escaped and aren't unique.
Manuel Jacob
Implement ll_read_timestamp() operation.
Manuel Jacob
Use simpler code to determine which link is for which exit case (boolean).
Manuel Jacob
Make signed overflow for add/sub/mul undefined.
Manuel Jacob
Use inbounds getelementptr when possible.
Manuel Jacob
Use llvm overflow intrinsics for the int_{add,add_nonneg,sub,mul}_ovf operations and use temporary hack to disable them in raisingops.py.
Manuel Jacob
Change LLVM backend to reflect the changes to the raw_load/raw_store operations merged in from default.
Manuel Jacob
hg merge default
Manuel Jacob
Give globals internal linkage if not exported.
Manuel Jacob
Make `LLVMSigned.repr_type()` a constant.
Manuel Jacob
Skip two tests that can't pass on the LLVM backend.
Manuel Jacob
Disable an assertion in an rpython test that doesn't hold anymore.
Manuel Jacob
Fix translation on 32-bit linux.
Manuel Jacob
Clear EXPORTS_obj2name after generating the source.
Manuel Jacob
Fix translation of cpyext.
Manuel Jacob
Test and fix exported structs which derive from rffi.cast().
Manuel Jacob
Don't compile but just generate source in test_entrypoints().
Manuel Jacob
Test and implement backend support for pypy.rlib.exports.export_struct().
Manuel Jacob
Don't special case main but use the c_name attribute.
Manuel Jacob
Add support for secondary entrypoints.
Manuel Jacob
Move more code around.
Manuel Jacob
Move code around.
Manuel Jacob
Apply SSI_to_SSA() optimization. Remove var_aliases.
Manuel Jacob
Refactor Database.get_type() to reduce the long if-elif-else chain.
Manuel Jacob
Remove support for union structs. They seem to be used nowhere.
Manuel Jacob
Add support for lltype.Typedef.
Manuel Jacob
Give functions internal linkage if possible.
Manuel Jacob
Allow casting floats to bools.
Manuel Jacob
Inline helpers.
Manuel Jacob
Fix casting integers to bools (fixing test_bool_2).
Manuel Jacob
Fix warnings from pyflakes.
Manuel Jacob
Add test and fix for llgroups which get members added after being passed to _consider_constant().
Manuel Jacob
Set recursionlimit to 10000.
Manuel Jacob
Another stub for the ll_read_timestamp() operation.
Manuel Jacob
Ignore PYPY_NO_OP.
Manuel Jacob
Hack to support curses.
Manuel Jacob
malloc_varsize_clear() takes an extracted type id.
Manuel Jacob
Add missing macro flags.
Manuel Jacob
Remove links to startblock.
Manuel Jacob
hg merge default
Manuel Jacob
Ignore debug_print_traceback() operation.
Manuel Jacob
Implement is_group_member_nonzero() operation.
Manuel Jacob
Implement llmemory.AddressAsInt.
Manuel Jacob
Fix ropenssl for LLVM.
Manuel Jacob
Support passing structs by value to external functions.
Manuel Jacob
Workaround for external functions which are defined multiple with different signatures.
Manuel Jacob
Fix float_neg() operation.
Manuel Jacob
Change the semantics of llexternal's llvm_wrapper parameter and document.
Manuel Jacob
Change the semantics of llexternal's macro parameter and document.
Manuel Jacob
Fix test_ll2ctypes. It was broken because of changeset 3b1fbf33191d.
Manuel Jacob
Ignore some jit_*() operations.
Manuel Jacob
Remove unnecessary finally block.
Manuel Jacob
Adapt tests from pypy.rlib.test.test_longlong2float and implement the necessary operations.
Manuel Jacob
Be more robust when joining arguments passed to clang.
Manuel Jacob
Surround identifiers containing particular characters with quotes instead of replacing them with underscores.
Manuel Jacob
Add test and fix for function pointers with void args.
Manuel Jacob
Avoid pointer-sign warning.
Manuel Jacob
Fix TestRweakrefLLVM.
Manuel Jacob
Add missing macro flags for os.{makedev,major,minor}.
Manuel Jacob
Add test and fix for prebuilt ErasingPairs.
Manuel Jacob
Fix TestLowLevelTypeLLVM.test_prebuilt_ll2ctypes_array.
Manuel Jacob
Refactor the usage of OpaqueType.
Manuel Jacob
Remove 'struct.' prefix.
Manuel Jacob
hg merge default
Manuel Jacob
Call abort() on fatal error.
Manuel Jacob
Add refcount gc.
Manuel Jacob
Fix TestRPBCLLVM.
Manuel Jacob
Fix TestRfloatLLVM.
Manuel Jacob
Not all same_as() operations were removed.
Manuel Jacob
Some rather cosmetic changes.
Manuel Jacob
Fix TestRlistLLVM.
Manuel Jacob
Make sure that two sequential empty globals dont't have the same address.
Manuel Jacob
Force remove_same_as() optimization.
Manuel Jacob
Oops. #3
Manuel Jacob
Oops. #2
Manuel Jacob
Oops.
Manuel Jacob
Add gc header also for arrays in ll2ctypes.
Manuel Jacob
Fix representation of recursive types.
Manuel Jacob
hg merge default
Manuel Jacob
_gc_header is ctypes.c_long, not ctypes.c_int.
Manuel Jacob
Fix TestLLVMRffi.
Manuel Jacob
Fix TestRbuiltinLLVM.
Manuel Jacob
Not running on LLInterpreter.
Manuel Jacob
Support 'policy' argument for interpret() and skip when the 'someobjects' argument is set.
Manuel Jacob
Set translation.gcremovetypeptr False for all rpython tests.
Manuel Jacob
Use lltype.typeOf() instead of type().
Manuel Jacob
Fix TestExceptionLLVM.
Manuel Jacob
Fix TestRvirtualizableLLVM.
Manuel Jacob
Use ll2ctypes in CTypesFuncWrapper.
Manuel Jacob
Adopt rpython tests for the LLVM backend.
Manuel Jacob
Add int_abs() operation.
Manuel Jacob
Also follow groups in _consider_constant().
Manuel Jacob
Also follow addresses in _consider_constant().
Manuel Jacob
Add support for empty structs.
Manuel Jacob
Add support for blocks that have two exits but a exitswitch whose type is not lltype.Bool.
Manuel Jacob
The type of compactoffset is a halfword on 64-bit.
Manuel Jacob
Add support for blocks with more than 2 exits (switch instruction).
Manuel Jacob
Remove temporary fix and do it right.
Manuel Jacob
Enable minimark tests with tagged pointers as well.
Manuel Jacob
Oops. This little fix is still needed for TestMiniMarkGCLLVM to complete.
Manuel Jacob
Factor out all transformation steps into the prepare_llvm task. This makes all tests pass.
Manuel Jacob
Add additional task prepare_llvm which does exception and gc transformations.
Manuel Jacob
Remove RawGCPolicy and RawGCTransformer because they aren't of use anymore.
Manuel Jacob
hg merge default
Manuel Jacob
Remove PtrType.to because there is an instance attribute called 'to'.
Manuel Jacob
Fix stack overflow in _consider_constant.
Manuel Jacob
Fix the two remaining rffi tests.
Manuel Jacob
Add support for prebuilt hashs.
Manuel Jacob
Adopt test_newgc.TestMiniMarkGC.
Manuel Jacob
Modify options passed to clang.
Manuel Jacob
Remove CharType and refactor how IntegralTypes are built.
Manuel Jacob
Fix llarena.RoundedUpForAllocation.
29 commits not shown.