Skip to content


Subversion checkout URL

You can clone with
Download ZIP

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base: master
compare: rurban/ops2c_llvm
Checking mergeability… Don’t worry, you can still create the pull request.
Commits on Oct 02, 2012
@bacek bacek Skeleton for LLVM bindings df587e8
@bacek bacek Move global functions loading into 256de9b
@bacek bacek Made test to looks more like test. 553b719
@bacek bacek Add more functions. fbbcd36
@bacek bacek Add Builder 7103124
@bacek bacek Add "private" _get_ptr to fetch underlying pointer. f6de3cf
@bacek bacek Add more functions. 6549d5e
@bacek bacek Add more functions. ee1c890
@bacek bacek More functions! More! 1b19f32
@bacek bacek Add LLMV::Type 99d6e0e
@bacek bacek Add new classes to build. 2975723
@bacek bacek Include new generated files 91f96b3
@bacek bacek Add LLVM::Module.add_function a4d354f
@bacek bacek Add LLVM::Function for real 2dfa209
@bacek bacek Add more functions. e3590a2
@bacek bacek Add test for apeend_basic_block. 8327c58
@bacek bacek Add LLVM::BasicBlock b6dd22a
@bacek bacek Add LLVM::Constant 0bfed50
@bacek bacek Add more guts to Builder. 5263594
@bacek bacek Add few actual builders to Builder. 021c96a
@bacek bacek Add tests and fix Builder creating 0c4cffb
@bacek bacek Add BasicBlock._get_ptr to use within Builder. 8cb47cd
@bacek bacek More tests 0dda50f
@bacek bacek Fix signature 28455e9
@bacek bacek Implement Also factor out common functionality to covert
@list to LLVM calling conventions.
@bacek bacek Implement set_linkage 335a610
@bacek bacek Add more types b1dd71f
@bacek bacek Create function with args in test a6b1452
@rurban rurban Skeleton for LLVMEngine wrapper
Fixed src/dynpmc/llvm_engine.pmc rebase conflict
@bacek bacek Fix stupid typo 261b590
@bacek bacek Add Constant.integer 3a36d0a
@bacek bacek Pass return type to add_function 731b7b5
@bacek bacek Add 'test' for invoking of LLVM generated function 57767a3
@bacek bacek "Import" all LLVM C API functions. b7f182e
@bacek bacek Add LLVM::Opaque eca1968
@bacek bacek Inherit Module from Opaque 674286e
@bacek bacek Migrate Function and BasicBlock to be Opaque c2a446f
@bacek bacek Provide default .BUILD and fix Builder to use unwrap 7f3e19b
@bacek bacek Migrate Builder to Opaque. Add .global_string method 626f197
@bacek bacek Add test for actual call. 14edb82
@bacek bacek Remove debug output. 6b952c5
@bacek bacek Add LLVM::Opaque.get_pointer VTABLE to avoid unwrapping objects const…
@bacek bacek Remove a lot of .unwrap 76a1e5d
@bacek bacek Add Builder.{alloca|load|store} 28baab5
@bacek bacek Add Module.add_type_name 6bce60d
@bacek bacek Add Type.struct 2a608f2
@bacek bacek Allow different wide int constants 01f7070
@bacek bacek Add GEP building 727b550
@bacek bacek Remove useless .wrap calls 5596d11
@bacek bacek Drop prefix LLVM from LLVM::F keys. We don't have to repeat it many t…
@bacek bacek Fix function signatures. 5245140
@bacek bacek Add more methods to Module. 5fd84b4
@bacek bacek Rename LLVM::convert_to_struct into to_array. For aesthetic reasons
@bacek bacek Add stub for LLVM::Context 5f2093f
@bacek bacek Add some guts to LLVM::Context ba7c8bb
@bacek bacek Add more stuff to LLVM::Context 3ff23a7
@bacek bacek Add more Types. fd192ac
@bacek bacek Add LLVM to default build 5d8148f
@bacek bacek Don't generate name in Function.append_basic_block. Expose Function.e…
@bacek bacek Ugly hack of parsing PCC signatures to support Object.get_pointer 1196f9a
@bacek bacek Remove Builder.BUILD. We can call it .new actually 869895f
@bacek bacek Remove Module.BUILD 7dd6945
@bacek bacek Change Context creation. fde3c59
@bacek bacek Add fe20d21
@bacek bacek Add stub for I do need way to call here ae44846
@bacek bacek Use .create for creating of LLVM::* objects. I couldn't find way of p…
…roper .new overriding without LLVM segfaults
@bacek bacek Add LLVM::Value stub 0f96898
@bacek bacek Add ed5ee1c
@bacek bacek Add fetching params from Function bbcc23e
@bacek bacek Add Opaque.defined for test simplification. b5b7565
@bacek bacek End-to-end testing to pass param from parrot into JITted functio, use…
… it and return back
@bacek bacek Wrap output of generated function for aesthetic reasons. 030ce27
@bacek bacek Add a lot more function declarations. 96387a6
@bacek bacek Add more LLVM function declarations. b97aba7
@bacek bacek Add test for optimization of generated function. b5d8a22
@bacek bacek Made LLVM::Type a class. We'll need it for resolving self-reference t…
@bacek bacek Add Module.verify 9cf6a5b
@bacek bacek Fix Module.verified 20c7fc9
@bacek bacek Add Builder.global_string_ptr and use it in test instead of .global_s…
@bacek bacek Verify more in test c7bfa16
@bacek bacek Add skeleton of PassManager a1abe1c
@bacek bacek Encapsulate PassManager 1c3533e
@bacek bacek Rename LLVM_Engine.create into create_call to avoid clash with other …
@bacek bacek Add 'checked call' and use it instead of direct access of %LLVM::F 49eb2b8
@bacek bacek Inherit Function from Value. 33e2d3c
@bacek bacek Reorder .include to get most generic classes first. 2cb6e5b
@bacek bacek Create LLVM::Value from each Builder method 2171635
@bacek bacek Generate for all math ops on load 719ade1
@bacek bacek Rearrange methods slightly and remove "stubs" for arithmetic ops. 4681a4c
@bacek bacek Wrap Type constructors to create LLMV::Type objects. 0c88385
@bacek bacek Generate Builder.cast methods e8ad778
@bacek bacek Rename arguments and fix types. ceda436
@bacek bacek Add Builder.icmp|fcmp ce1e53e
@bacek bacek Generate "enum" class with bunch of methods on load.
Currently for simple ValidateAction. Will be extended in next commits.
@bacek bacek Use 'enum' 3d9a33a
@bacek bacek Factor out common enum generator d9d6426
@bacek bacek Generate real predicate enum b7668f4
@bacek bacek Stylish changes 9bf5a6b
@bacek bacek Add more functions to Value. 4ebee51
@bacek bacek Porperly wrap LLVM::Context d350f4f
@bacek bacek Porperly wrap LLVM::Type in Context type methods. 2e4dcb3
@bacek bacek Add simple conditionals c21b928
@bacek bacek [codetest] Remove trailing space and useless comment 325bcb5
@bacek bacek Fix Builder 2e3536e
@bacek bacek Add float types 994180c
@bacek bacek Start building "proper" test-suite for LLVM bindings.
Create standalone 01-opaque.t
@bacek bacek Add initial LLVM::Type tests bf54603
@bacek bacek Wrap undef in Builder.DESTROY 5aa0d1b
@bacek bacek Initial test for LLVM::Builder. 7733529
@bacek bacek Add test for pointer types creation. ff40238
@bacek bacek Add sortcut for creating c strings type ebe3f87
@bacek bacek Wrap constants into Value and add test for it 805a410
@bacek bacek Add test for LLVM::Value 4c0417d
@bacek bacek Remove copy-pasted comment 09c6c44
@bacek bacek Rename old test ac80bd0
@bacek bacek Add test for Module. f59aadc
@bacek bacek Add Type.refine_to for gnerating recursive types (e.g. struct) 730657f
@bacek bacek Let's use good bits from statically typed languages.
1. Add types to Builder method arguments.
2. Also change $name parameter to be named and optional for consistency.
@bacek bacek Add more tests aa9aae5
@bacek bacek Add few utility methods for workaround of P6object freeze/thaw bug 263cc30
@bacek bacek Deep clone of Ops variant.
It will be used for generating of dump files with parsed Ops.
@bacek bacek Force boolify "experimental" flag. 1bf4ef2
@bacek bacek Clone scalars in process_recursive. 0463b0a
@bacek bacek Simplify Op.arg_type 7bf4c9d
@bacek bacek Rewrite test using "is" instead of "ok". 532d553
@bacek bacek Skip undefined elements in process_recursive. Fix last broken test in…
… t/compiler/opsc
@bacek bacek Fix stupid bug with process_recursive. dfe41e3
@bacek bacek Add another workaround for thawed Class/Namespaces cf21f48
@bacek bacek Made :core optional. Otherwise we can thaw Ops::File. 82eb3aa
@bacek bacek Few minor bugfixes. 4ce7c3d
@bacek bacek Implement dumping of parsed ops b5c0bbd
@bacek bacek Revert "Simplify Op.arg_type". It was really bad idea.
This reverts commit 1315017.
@bacek bacek Inherit BasicBlock from Value to access .name b09df88
@leto leto Add the next method to LLVM::BasicBlock b5c3223
@bacek bacek Fix BasicBlock. dukeleto-- for committing non-compilable stuff. 6a707ad
@bacek bacek Add simple skeleton test for BasicBlock. 05ea9a9
@bacek bacek Add LLVM::Opaque.ACCEPTS implementation. b6824ca
@bacek bacek Add test for aad173e
@bacek bacek Fix test. 768216e
@bacek bacek Implement Builder.get_insert_block f3ee74e
luben karavelov more test for generating constants 796e511
luben karavelov Flesh out LLVM::Constant a96f28a
@bacek bacek Use bit of static typing in LLVM bindings. 778e930
@bacek bacek Add shortcuts to create few Parrot types. 5895eea
@bacek bacek Add LLVM::BasicBlock.insert_before(); f4d2985
@bacek bacek Return self from for simplify chained calls. 264a21d
@bacek bacek Improve Type::PMC slightly.
LLVM doesn't like pointer(void). It should be replaced with pointer(int8()). Which makes sanse but still quite surprise.
@bacek bacek Fix typo 17e5d5d
@bacek bacek Add Type::function for create FunctionType fc86aa1
@bacek bacek Switch Module to use Type::function 2692292
@bacek bacek Fix bug with
We should actually return result of LLVM call.
@bacek bacek Add BasicBlock.prev 27522dd
@luben luben Add more Builder methods cb0c5a9
@luben luben * Add list of all available optimizer passes
* some stylistic fixes in builder
@luben luben Some more BasicBlock methods fb434e0
@luben luben fix copy/paste error 6871d17
@bacek bacek [cage] Trailing whitespace. 773e44d
@luben luben serialize and deserialize LLVM bitcode to files 4ae1d5c
@bacek bacek Implement function fetching and navigation c26649e
@bacek bacek Split LLVM_Engine.class_init function for initalize LLVM once only. A…
…dd empty .init. Fix memory leak in .load_module.
@bacek bacek Fix loading of bitcode. 989a620
@bacek bacek Use empty LLVM_Engine to load bitcode 9bb4782
@bacek bacek Rework bitcode loading slightly. 14f8203
@bacek bacek Fix testing loaded module.
Fe have to find proper function from it to call.
@bacek bacek Create complex parrot's types once only. aa1e318
@bacek bacek Add * variants of parrot types. 5ec4fdc
@bacek bacek Add Function.return_type. 5d6703f
@bacek bacek Add Module type introspection. 6bfba36
@bacek bacek Add Module.find_function 5eae35f
@jkeenan jkeenan Add generated files to .gitignore and MANIFEST.generated. Re-run mk_m…
… Add files as needed to FLUID_FILES_2 target in config/gen/makefiles/
@jkeenan jkeenan Overhaul auto::llvm to require minimum version of LLVM. Modify steps …
…test file accordingly.
@jkeenan jkeenan Use 'llvm-config' to simplify probe for LLVM; adjust tests accordingly. e2e1212
@jkeenan jkeenan Refactor code into internal method to make more execution paths testa…
…ble. Then test them.
@luben luben llvm config step:
 * add --llvm-config option to
 * add proper libs an cflags to the build system
@luben luben link libLLVM only to, not to libparrot 008608f
@luben luben load discovered in 843a3a8
@bacek bacek Function.first_basic_block and .last_basic_block c381df1
@jkeenan jkeenan Use Parrot::Configure::Utils::capture_output() to run 'llvm-config --…
…bindir'. Will work more cleanly than backticks on machines with no LLVM whatsoever.
@bacek bacek Mass add 'multi' to enforce check of types by PCC. Also remove some '…
…Str' and 'Int' because they are not supported by nqp/parrot
@bacek bacek Wrap result into LLVM::Value 3642c2b
@bacek bacek Merge Builder.insert_into_builder and _with_name versions into one. 47411b9
@bacek bacek Made to always be named parameter for consistency 069ba8c
@bacek bacek Remove useless Str 05c5be9
@bacek bacek Fix LLVM::Constant signatures. 9a0626f
@bacek bacek Fix merge error. bd0697d
@bacek bacek Use llvm_config from parameters instead of hardcoded "ll…
@bacek bacek Use "multi" for auto-generated methods as well. eb21088
@bacek bacek [llvm] Rework generation of "enum classes".
$foo++ doesn't increase number somehow. Use explicit +1.
@bacek bacek [llvm] Fix creating of LLVM::Values d053a4f
@bacek bacek [llvm] Fix Build?Cmp invokation 2c68d0a
@bacek bacek [llvm] Fix generating of bitwise ops f889647
@bacek bacek [llvm] Add BasicBlock.first/.last_instruction 8295186
@bacek bacek [llvm] Bind semi-generated LLVMIsAFoo functions. 529a8c6
@bacek bacek [llvm] Bind LLVM::Value.isAFoo methods.
TODO: rename them to more perlish style similar as in LLVM::Builder.
@luben luben make more perlish method names bccb333
@jkeenan jkeenan Same commit as in master. cb795e3
@bacek bacek Rename few generated methods for consistency with Builder. 4827ad8
@bacek bacek Revert "link libLLVM only to, not to libparrot"
This reverts commit b704d9e.
@bacek bacek [llvm] Add Type.opcode_t 4b30343
@bacek bacek [llvm] Add stubs for handling e8b60ad
@bacek bacek Add CXX compilation rules. 34851f7
@bacek bacek Add llvm_extra.cpp with supplimentary LLVM functions. d8f5c72
@bacek bacek Bind and use new dumping functions 36389e4
@bacek bacek Add usage/testing of new LLVM::Module.dump. f3c409b
@bacek bacek Add more LLVM::Module.dump tests. Because we can! 8d716aa
@bacek bacek Use template specialization for dumping modules. Also rename 'do_prin…
…t' to 'dump_to_string'
@bacek bacek Specialize only related part of dumping of LLVM::Stuff. d849732
@luben luben build llvm_engine dynPMC only if we have libLLVM 2ee457e
@luben luben resolve conflict in opsc c59b533
@rurban rurban [GH #853] Enable proper llvm probes
enable compilation probes
add the --llvm-config option and handle it
print the detected version (silent 1 as fallback)
detect static llvm libs
handle the debian testing default case (appended -version)
handle the llvm 3.2 new --version format
set proper llvm_{c,cxx,ld}flags and llvm_libs config keys for opsc_llvm integration
try given cc for a llvm-gcc or clang compatible compiler
check the output of -emit-llvm by file magic inspection
  ld: warning: cannot find entry symbol 'mit-llvm'
@rurban rurban Merge branch 'rurban/llvm-gh853' of into rur…

Fixed conflicts: (in favor of rurban/llvm-gh853)
@rurban rurban Enable LLVM compilation for dynpmc/llvm_engine and llvm_extra
Set the proper llvm c and link flags
Commits on Oct 03, 2012
@rurban rurban [GH #853] Less failing llvm-gcc noise c4ac9e8
@rurban rurban Merge remote-tracking branch 'origin/rurban/llvm-gh853' into rurban/o…
Commits on Oct 05, 2012
@rurban rurban [codingstd] Add coda to dynpmc/llvm_engine 63176bb
@rurban rurban Merge branch 'rurban/ops2c_llvm' of into rur…