Skip to content

Comparing changes

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

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
Commits on Mar 06, 2011
@bacek bacek Skeleton for LLVM bindings 085a273
@bacek bacek Move global functions loading into ed424f8
@bacek bacek Made test to looks more like test. 632f2d1
@bacek bacek Add more functions. afa93ef
@bacek bacek Add Builder 8be7bfe
@bacek bacek Add "private" _get_ptr to fetch underlying pointer. 394c8fe
@bacek bacek Add more functions. 4db2e0d
@bacek bacek Add more functions. 89299c0
@bacek bacek More functions! More! 3feabbb
@bacek bacek Add LLMV::Type 5b2e672
@bacek bacek Add new classes to build. b04aef4
@bacek bacek Include new generated files ab2c037
@bacek bacek Add LLVM::Module.add_function eaed6fe
@bacek bacek Add LLVM::Function for real a3e2d28
@bacek bacek Add more functions. 3a157c6
@bacek bacek Add test for apeend_basic_block. 9b35f82
@bacek bacek Add LLVM::BasicBlock d473cea
@bacek bacek Add LLVM::Constant 262226c
@bacek bacek Add more guts to Builder. f339d44
@bacek bacek Add few actual builders to Builder. c906385
@bacek bacek Add tests and fix Builder creating 1ffb6e9
@bacek bacek Add BasicBlock._get_ptr to use within Builder. da76a9d
@bacek bacek More tests 88d2883
@bacek bacek Fix signature e14fb8d
@bacek bacek Implement Also factor out common functionality to covert
@list to LLVM calling conventions.
@bacek bacek Implement set_linkage 1076130
@bacek bacek Add more types 6263568
@bacek bacek Create function with args in test 3ed5117
@bacek bacek Skeleton for LLVMEngine wrapper bb2473b
@bacek bacek Fix stupid typo af54ffd
@bacek bacek Add Constant.integer 699cb37
@bacek bacek Pass return type to add_function 9252309
@bacek bacek Add 'test' for invoking of LLVM generated function fb705f4
Commits on Mar 07, 2011
@bacek bacek "Import" all LLVM C API functions. 45961c9
@bacek bacek Add LLVM::Opaque 5012c59
@bacek bacek Inherit Module from Opaque 2ae9971
@bacek bacek Migrate Function and BasicBlock to be Opaque 3f98103
@bacek bacek Provide default .BUILD and fix Builder to use unwrap 158897b
@bacek bacek Migrate Builder to Opaque. Add .global_string method a6d8480
@bacek bacek Add test for actual call. e4e6670
@bacek bacek Remove debug output. 99be336
@bacek bacek Add LLVM::Opaque.get_pointer VTABLE to avoid unwrapping objects const…
@bacek bacek Remove a lot of .unwrap 9a84ad1
@bacek bacek Add Builder.{alloca|load|store} f6556ec
@bacek bacek Add Module.add_type_name 47808d1
@bacek bacek Add Type.struct 8c491bd
@bacek bacek Allow different wide int constants 30e820d
@bacek bacek Add GEP building c8be6d2
@bacek bacek Remove useless .wrap calls 2e341f6
@bacek bacek Drop prefix LLVM from LLVM::F keys. We don't have to repeat it many t…
@bacek bacek Fix function signatures. 6328edc
@bacek bacek Add more methods to Module. 650f438
@bacek bacek Rename LLVM::convert_to_struct into to_array. For aesthetic reasons
@bacek bacek Add stub for LLVM::Context 89cee3d
@bacek bacek Add some guts to LLVM::Context 64f2895
@bacek bacek Add more stuff to LLVM::Context 1c3e342
@bacek bacek Add more Types. 47027d4
@bacek bacek Add LLVM to default build 156d40e
@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 c9ae6e7
@bacek bacek Remove Builder.BUILD. We can call it .new actually e92c97e
@bacek bacek Remove Module.BUILD 149669e
@bacek bacek Change Context creation. 951a3cb
@bacek bacek Add c748288
@bacek bacek Add stub for I do need way to call here 28a5f59
Commits on Mar 08, 2011
@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 fa227ed
@bacek bacek Add 5f3c724
@bacek bacek Add fetching params from Function 113f930
@bacek bacek Add Opaque.defined for test simplification. 84d77e2
@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. 505c8d3
@bacek bacek Add a lot more function declarations. 5b96ae1
@bacek bacek Add more LLVM function declarations. c7db18c
@bacek bacek Add test for optimization of generated function. 38d9af2
@bacek bacek Made LLVM::Type a class. We'll need it for resolving self-reference t…
@bacek bacek Add Module.verify 97c4860
@bacek bacek Fix Module.verified 9b3d569
@bacek bacek Add Builder.global_string_ptr and use it in test instead of .global_s…
@bacek bacek Verify more in test a0cab9b
@bacek bacek Add skeleton of PassManager b536820
@bacek bacek Encapsulate PassManager 3a4e1ab
@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 0966795
@bacek bacek Inherit Function from Value. 4cc5122
@bacek bacek Reorder .include to get most generic classes first. 2996d9f
@bacek bacek Create LLVM::Value from each Builder method 3b39ab4
@bacek bacek Generate for all math ops on load 4f7f1ed
@bacek bacek Rearrange methods slightly and remove "stubs" for arithmetic ops. 680eb9f
@bacek bacek Wrap Type constructors to create LLMV::Type objects. ce1b63f
@bacek bacek Generate Builder.cast methods 46bb1ff
@bacek bacek Rename arguments and fix types. d3e4f54
@bacek bacek Add Builder.icmp|fcmp 4d2961d
@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' 80c091f
@bacek bacek Factor out common enum generator 35f52e0
@bacek bacek Generate real predicate enum 5c7f2dd
@bacek bacek Stylish changes 5b33e53
@bacek bacek Add more functions to Value. fdafd70
@bacek bacek Porperly wrap LLVM::Context 52141fd
@bacek bacek Porperly wrap LLVM::Type in Context type methods. 30e0c0b
@bacek bacek Add simple conditionals dabd136
@bacek bacek [codetest] Remove trailing space and useless comment c9db38a
@bacek bacek Fix Builder d971d48
@bacek bacek Add float types ed86c6a
@bacek bacek Start building "proper" test-suite for LLVM bindings.
Create standalone 01-opaque.t
@bacek bacek Add initial LLVM::Type tests 0ee0370
@bacek bacek Wrap undef in Builder.DESTROY 1882abc
@bacek bacek Initial test for LLVM::Builder. e2d43dc
@bacek bacek Add test for pointer types creation. bd5ab75
@bacek bacek Add sortcut for creating c strings type aca3fe8
@bacek bacek Wrap constants into Value and add test for it cc86324
Commits on Mar 09, 2011
@bacek bacek Add test for LLVM::Value c2f3abc
@bacek bacek Remove copy-pasted comment 3719383
@bacek bacek Rename old test 9ccd048
@bacek bacek Add test for Module. 9e32008
@bacek bacek Add Type.refine_to for gnerating recursive types (e.g. struct) 1c4d8a9
@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 Merge branch 'opsc_llvm' of into opsc_llvm b95bd46
Commits on Mar 10, 2011
@bacek bacek Add more tests 3a42442
@bacek bacek Merge branch 'master' into opsc_llvm 4008a6b
@bacek bacek Merge branch 'opsc_llvm' of into opsc_llvm b75e23b
Commits on Mar 11, 2011
@petdance petdance Parrot_hash_put can return NULL 21594e1
@bacek bacek Update NEWS for opsc_full_parse branch merge. ddf8ae8
@petdance petdance ratcheting down some splint warnings 7d79837
@bacek bacek Add todoed tests for Capture.freeze/thaw. 492de04
@bacek bacek Implement Capture.freeze/thaw. Closes #2047 cdecdf8
@bacek bacek Set custom_mark flag in Capture.thaw when needed. afa7674
@bacek bacek Add few utility methods for workaround of P6object freeze/thaw bug e24da1f
@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. d871b26
@bacek bacek Clone scalars in process_recursive. fa88183
@bacek bacek Simplify Op.arg_type 1315017
@bacek bacek Rewrite test using "is" instead of "ok". 82978da
@bacek bacek Skip undefined elements in process_recursive. Fix last broken test in…
… t/compiler/opsc
@bacek bacek Fix stupid bug with process_recursive. 36e4a6f
@bacek bacek Add another workaround for thawed Class/Namespaces e020e81
@bacek bacek Made :core optional. Otherwise we can thaw Ops::File. 9810967
@bacek bacek Few minor bugfixes. cb5a75d
@bacek bacek Implement dumping of parsed ops ca64257
@bacek bacek Revert "Simplify Op.arg_type". It was really bad idea.
This reverts commit 1315017.
Commits on Mar 15, 2011
@bacek bacek Inherit BasicBlock from Value to access .name 1c7d081
Commits on Mar 17, 2011
@bacek bacek Merge branch 'master' into opsc_llvm
@leto leto Add the next method to LLVM::BasicBlock ecbda7c
@bacek bacek Merge branch 'opsc_llvm' of into opsc_llvm 99ec214
@bacek bacek Fix BasicBlock. dukeleto-- for committing non-compilable stuff. 16cb003
Commits on Mar 18, 2011
@bacek bacek Add simple skeleton test for BasicBlock. f28b928
@bacek bacek Add LLVM::Opaque.ACCEPTS implementation. dc4aeef
@bacek bacek Add test for 3d942a0
@bacek bacek Fix test. eeb52d5
Commits on Mar 19, 2011
@bacek bacek Merge branch 'master' into opsc_llvm a1948f0
@bacek bacek Merge branch 'master' into opsc_llvm 2c980d2
@bacek bacek Link all libraries into llvm_engine.
llvm-config --libs produces list of _static_ libs. And linker selects only used functions. Which leads to "Undefined symbol" errors when we do dynamic linking of dynops.
@bacek bacek Implement Builder.get_insert_block 1d4307c
Commits on Mar 20, 2011
luben karavelov more test for generating constants ff6ba19
luben karavelov Flesh out LLVM::Constant aa6f121
@bacek bacek Use bit of static typing in LLVM bindings. 1c76a45
Commits on Mar 21, 2011
@bacek bacek Add shortcuts to create few Parrot types. 0e47a3a
Commits on Mar 22, 2011
@bacek bacek Add LLVM::BasicBlock.insert_before(); f1a81ea
@bacek bacek Return self from for simplify chained calls. 1f4542e
@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 a9482e2
@bacek bacek Add Type::function for create FunctionType 25c884a
@bacek bacek Switch Module to use Type::function 71d072f
@bacek bacek Fix bug with
We should actually return result of LLVM call.
@bacek bacek Add BasicBlock.prev 0adf372
@jkeenan jkeenan Add t/library/*/*.t to list of globs included in \@library_tests, hen…
…ce run during 'make test'.
@luben luben Add more Builder methods cf06776
@luben luben Merge branch 'opsc_llvm' of into opsc_llvm a9403d6
@luben luben * Add list of all available optimizer passes
* some stylistic fixes in builder
@luben luben Some more BasicBlock methods 0376785
@luben luben fix copy/paste error 0ac018a
@bacek bacek [cage] Trailing whitespace. 0998fee
@luben luben serialize and deserialize LLVM bitcode to files 424fb27
@bacek bacek Implement function fetching and navigation 203d726
@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. d2f863f
@bacek bacek Use empty LLVM_Engine to load bitcode 656caea
@bacek bacek Rework bitcode loading slightly. 13d22b9
@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. 67151ce
@bacek bacek Add * variants of parrot types. ae04e65
@bacek bacek Add Function.return_type. 1738a31
@bacek bacek Add Module type introspection. d96afc5
@bacek bacek Add Module.find_function 4430c2e
@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/
Commits on Mar 23, 2011
@jkeenan jkeenan Overhaul auto::llvm to require minimum version of LLVM. Modify steps …
…test file accordingly.
Commits on Mar 24, 2011
@jkeenan jkeenan Use 'llvm-config' to simplify probe for LLVM; adjust tests accordingly. 1594ff8
Commits on Mar 25, 2011
@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 b704d9e
@luben luben load discovered in 0004a71
Commits on Mar 26, 2011
@bacek bacek Function.first_basic_block and .last_basic_block 4ac7226
@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.
Commits on Mar 29, 2011
@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 fb03753
@bacek bacek Merge Builder.insert_into_builder and _with_name versions into one. aa6f66d
@bacek bacek Made to always be named parameter for consistency 05f30bb
@bacek bacek Remove useless Str 0e06465
@bacek bacek Fix LLVM::Constant signatures. e055329
@bacek bacek Fix merge error. 0b16604
@bacek bacek Use llvm_config from parameters instead of hardcoded "ll…
Commits on Mar 30, 2011
@bacek bacek Use "multi" for auto-generated methods as well. 7b1db1e
@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 05840ef
@bacek bacek [llvm] Fix Build?Cmp invokation 6d1337f
@bacek bacek [llvm] Fix generating of bitwise ops 15b1c9a
@bacek bacek [llvm] Add BasicBlock.first/.last_instruction f53c3b9
@bacek bacek [llvm] Bind semi-generated LLVMIsAFoo functions. fd74043
@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 a732aa3
Commits on Mar 31, 2011
@bacek bacek Merge branch 'master' into opsc_llvm
@jkeenan jkeenan Undeleted git-conflict marker caused Perl syntax error; delete it. aff726f
@jkeenan jkeenan Same commit as in master. f04d23a
@bacek bacek Rename few generated methods for consistency with Builder. 403668a
@bacek bacek Revert "link libLLVM only to, not to libparrot"
This reverts commit b704d9e.
Commits on Apr 04, 2011
@bacek bacek [llvm] Add Type.opcode_t 8cf3d99
@bacek bacek [llvm] Add stubs for handling 3ba281e
Commits on Apr 25, 2011
@bacek bacek Merge branch 'master' into opsc_llvm
@bacek bacek Add CXX compilation rules. 9a03493
@bacek bacek Add llvm_extra.cpp with supplimentary LLVM functions. 2973176
@bacek bacek Bind and use new dumping functions 7ad3085
@bacek bacek Add usage/testing of new LLVM::Module.dump. 90b57bd
@bacek bacek Add more LLVM::Module.dump tests. Because we can! 48694c4
@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. 1fa34b4