summaryrefslogtreecommitdiffstats
path: root/llvm/bindings
Commit message (Collapse)AuthorAgeFilesLines
* Fix format string in bindings/go/llvm/ir_test.go (PR40561)Hans Wennborg2019-02-051-2/+2
| | | | | | | | | | | | | | The test started failing for me recently. I don't see any changes around this code, so maybe it's my local go version that changed or something. The error seems real to me: we're trying to print an Attribute with %d. The test talks about "attribute masks" I'm not sure what that refers to, but I suppose we could print the raw pointer value, since that's what the test seems to be comparing. Differential revision: https://reviews.llvm.org/D57672 llvm-svn: 353155
* Update the file headers across all of the LLVM projects in the monorepoChandler Carruth2019-01-1977-308/+246
| | | | | | | | | | | | | | | | | to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636
* [NewPM][TSan] Reiterate the TSan portPhilip Pfaffe2019-01-161-1/+2
| | | | | | | | | | | | | | | | | | | Summary: Second iteration of D56433 which got reverted in rL350719. The problem in the previous version was that we dropped the thunk calling the tsan init function. The new version keeps the thunk which should appease dyld, but is not actually OK wrt. the current semantics of function passes. Hence, add a helper to insert the functions only on the first time. The helper allows hooking into the insertion to be able to append them to the global ctors list. Reviewers: chandlerc, vitalybuka, fedor.sergeev, leonardchan Subscribers: hiraditya, bollu, llvm-commits Differential Revision: https://reviews.llvm.org/D56538 llvm-svn: 351314
* Revert "Fix go bindings for r350647: missed a function rename"Jorge Gorbe Moya2019-01-101-2/+1
| | | | | | This reverts commit a74266858a8164cfb23d4e138cd4c7c37be0b5d1. SVN revision r350657. llvm-svn: 350790
* Fix go bindings for r350647: missed a function renameJorge Gorbe Moya2019-01-081-1/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D56452 llvm-svn: 350657
* Python compat - iterator protocolSerge Guelton2019-01-031-5/+16
| | | | | | | | In Python2 next() is used wile it's __next__ in Python3. Differential Revision: https://reviews.llvm.org/D56250 llvm-svn: 350326
* Python compat - test if type is integralSerge Guelton2019-01-031-7/+9
| | | | | | | | Rely on numbers.Integral instead of int/long Differential Revision: https://reviews.llvm.org/D56262 llvm-svn: 350316
* Python compat - assertRaisesRegexSerge Guelton2019-01-032-1/+6
| | | | | | | | Python3 uses assertRaisesRegex instad of assertRaisesRegexp. Differential Revision: https://reviews.llvm.org/D56251 llvm-svn: 350308
* Python compat - print statementSerge Guelton2019-01-034-5/+12
| | | | | | | | | Make sure all print statements are compatible with Python 2 and Python3 using the `from __future__ import print_function` statement. Differential Revision: https://reviews.llvm.org/D56249 llvm-svn: 350307
* [NewPM] Port MsanPhilip Pfaffe2019-01-033-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Keeping msan a function pass requires replacing the module level initialization: That means, don't define a ctor function which calls __msan_init, instead just declare the init function at the first access, and add that to the global ctors list. Changes: - Pull the actual sanitizer and the wrapper pass apart. - Add a newpm msan pass. The function pass inserts calls to runtime library functions, for which it inserts declarations as necessary. - Update tests. Caveats: - There is one test that I dropped, because it specifically tested the definition of the ctor. Reviewers: chandlerc, fedor.sergeev, leonardchan, vitalybuka Subscribers: sdardis, nemanjai, javed.absar, hiraditya, kbarton, bollu, atanasyan, jsji Differential Revision: https://reviews.llvm.org/D55647 llvm-svn: 350305
* [bindings/go] Add Go bindings to LLVMGetIndiceswhitequark2018-11-081-0/+13
| | | | | | | | | | | | | | Summary: This instruction is useful for inspecting extractvalue/insertvalue in IR. Unlike most other operations, indices cannot be inspected using the generic Value.Opcode() function so a specialized function needs to be added. Reviewers: whitequark, pcc Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D53883 llvm-svn: 346388
* [OCaml] Fix incorrect use of CAMLlocal in nested blockswhitequark2018-11-081-4/+3
| | | | | | | | | | | | | | | | | | | | | | Summary: The OCaml manual states: > Local variables of type value must be declared with one of the > CAMLlocal macros. [...] These macros must be used at the beginning > of the function, not in a nested block. This patch moves several instances of CAMLlocal macros from nested blocks to the function beginning. Reviewers: whitequark Reviewed By: whitequark Subscribers: CodaFi, llvm-commits Differential Revision: https://reviews.llvm.org/D53841 llvm-svn: 346387
* [TI removal] Remove TerminatorInst references from bindings.Chandler Carruth2018-10-182-4/+3
| | | | | | | | | | For the Go bindings, this just removes the no longer useful "isa"-style wrapper. If there is a user that is interested, they can add a wrapper for `Instruction::isTerminator`. For the OCaml bindings, this is just a documentation update. llvm-svn: 344726
* [bindings/go] Add Go bindings to the Token typewhitequark2018-09-281-0/+2
| | | | | | | | | | | | | | Summary: This type is necessary for implementing coroutines. Reviewers: whitequark Reviewed By: whitequark Subscribers: modocache, llvm-commits Differential Revision: https://reviews.llvm.org/D47684 llvm-svn: 343345
* [bindings/go] Add Go bindings for inline assemblywhitequark2018-09-281-0/+20
| | | | | | | | | | | | Reviewers: harlanhaskins, whitequark, pcc Reviewed By: pcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D46437 llvm-svn: 343339
* Revert "[LLVM-C] Add bindings for addCoroutinePassesToExtensionPoints"whitequark2018-09-281-4/+0
| | | | | | | | | This reverts commit c4baf7c2f06ff5459c4f5998ce980346e72bff97. Broke the bots, and should really be in Transforms/Coroutines instead. llvm-svn: 343337
* [LLVM-C] Add bindings for addCoroutinePassesToExtensionPointswhitequark2018-09-281-0/+4
| | | | | | | | | | | | | | Summary: This patch adds bindings to C and Go for addCoroutinePassesToExtensionPoints, which is used to add coroutine passes to the correct locations in PassManagerBuilder. Reviewers: whitequark, deadalnix Reviewed By: whitequark Subscribers: mehdi_amini, modocache, llvm-commits Differential Revision: https://reviews.llvm.org/D51642 llvm-svn: 343336
* [LLVM-C][OCaml] Add UnifyFunctionExitNodes pass to C and OCaml APIswhitequark2018-09-183-0/+14
| | | | | | | | | | | | | | | | Summary: Adds LLVMAddUnifyFunctionExitNodesPass to expose createUnifyFunctionExitNodesPass to the C and OCaml APIs. Reviewers: whitequark, deadalnix Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D52212 llvm-svn: 342476
* [LLVM-C][OCaml] Add LowerAtomic pass to C and OCaml APIswhitequark2018-09-183-0/+14
| | | | | | | | | | | | | | | | Summary: Adds LLVMAddLowerAtomicPass to expose createLowerAtomicPass in the C and OCaml APIs. Reviewers: whitequark, deadalnix Reviewed By: whitequark Subscribers: jfb, llvm-commits Differential Revision: https://reviews.llvm.org/D52211 llvm-svn: 342475
* [OCaml] Add OCaml API for LLVMGetIndiceswhitequark2018-09-183-0/+19
| | | | | | | | | | | | | | | | | | Summary: This patch adds a thin wrapper around LLVMGetNumIndices and LLVMGetIndices to return the indices of ExtractValue or InsertValue instructions as an OCaml array. It has not seemed to be necessary to expose LLVMGetNumIndices separately. Reviewers: whitequark Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D52207 llvm-svn: 342474
* [OCaml] Add OCaml API for LLVMIsCleanupwhitequark2018-09-183-0/+10
| | | | | | | | | | | | | | Summary: Expose test for whether or not a landingpad is a cleanup. Reviewers: whitequark Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D52205 llvm-svn: 342438
* [NFC][OCaml] Fix copy paste error in file headerwhitequark2018-09-181-1/+1
| | | | | | | | | | | | | | Summary: Just copypasta resulting in the wrong file name in the header. Reviewers: whitequark Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D52215 llvm-svn: 342437
* [NFC][OCaml] Fix implicit declaration compilation warningswhitequark2018-09-181-0/+1
| | | | | | | | | | | | | | | | | Summary: 2dd4f35c7fc75639920ebc473a4a57ea91864c10 moved LLVMAddLowerSwitchPass and LLVMAddPromoteMemoryToRegisterPass declarations from llvm-c/Transforms/Scalar.h to llvm-c/Transforms/Utils.h Reviewers: whitequark Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D52214 llvm-svn: 342436
* [LLVM-C][OCaml] Add C and OCaml APIs for llvm::StructType::isLiteralwhitequark2018-09-183-0/+10
| | | | | | | | | | | | | | | | | Summary: This patch adds LLVMIsLiteralStruct to the C API to expose StructType::isLiteral. This is then used to implement the analogous addition to the OCaml API. Reviewers: whitequark, deadalnix Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D52209 llvm-svn: 342435
* [OCaml] Add OCaml APIs for Invoke arguments and destinationswhitequark2018-09-183-2/+23
| | | | | | | | | | | | | | | | | Summary: This patch adds OCaml APIs for LLVMGetNormalDest and LLVMGetUnwindDest on InvokeInsts, as well as LLVMGetNumArgOperands on CallInsts and InvokeInsts. Reviewers: whitequark Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D52204 llvm-svn: 342433
* [OCaml] Add GlobalIFunc value kind to OCaml APIwhitequark2018-09-183-0/+4
| | | | | | | | | | | | | | | | | | Summary: The GlobalIFunc value kind has not yet been added to the OCaml API. This patch only extends the enum, so that e.g. classify_value will not crash. No support for manipulating or building GlobalIFuncs is added at this point. Reviewers: whitequark, deadalnix Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D52198 llvm-svn: 342429
* [OCaml] Add Token type to kind enum in OCaml APIwhitequark2018-09-182-0/+2
| | | | | | | | | | | | | | | | | | Summary: The token type has not yet been added to the OCaml API. This patch only extends the enum, so that e.g. classify_type will not crash. No support for manipulating or building tokens is added at this point. Reviewers: whitequark Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D52197 llvm-svn: 342428
* [OCaml] Add missing instruction opcodes to OCaml APIwhitequark2018-09-183-1/+13
| | | | | | | | | | | | | | | | | Summary: The OCaml bindings have become out of date and several opcodes have been added to the C API without corresponding additions to the OCaml API. Reviewers: whitequark, mgorny Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D52196 llvm-svn: 342427
* [bindings/go] Add DebugLoc parameter to InsertXXXAtEnd()Peter Collingbourne2018-09-131-4/+8
| | | | | | | | | | | | These functions previously passed nil for the location, which always resulted in a crash. This is a signature breaking change, but I cannot see how they could have been used before. Patch by Ben Clayton! Differential Revision: https://reviews.llvm.org/D51970 llvm-svn: 342179
* [Bindings][Go] Fixed go.test failure due to C-API argument type mismatch.Kristina Brooks2018-09-071-1/+1
| | | | | | | | | | | | | | go.test was failing previously with error, Command Output (stderr): dibuilder.go:301: cannot use C.uint(t.Encoding) (type C.uint) as type C.LLVMDWARFTypeEncoding in argument to func literal This patch fixes the argument type. Patch by Chirag (Chirag Patel) Differential Revision: https://reviews.llvm.org/D51721 llvm-svn: 341680
* [AArch64] Add Tiny Code Model for AArch64David Green2018-08-221-0/+1
| | | | | | | | | | | | | | This adds the plumbing for the Tiny code model for the AArch64 backend. This, instead of loading addresses through the normal ADRP;ADD pair used in the Small model, uses a single ADR. The 21 bit range of an ADR means that the code and its statically defined symbols need to be within 1MB of each other. This makes it mostly interesting for embedded applications where we want to fit as much as we can in as small a space as possible. Differential Revision: https://reviews.llvm.org/D49673 llvm-svn: 340397
* [bindings/go] Add coroutine passeswhitequark2018-08-191-0/+24
| | | | | | | | Add Go bindings for CoroEarly, CoroSplit, CoroElide and CoroCleanup. Differential Revision: https://reviews.llvm.org/D50951 llvm-svn: 340148
* [C-API][DIBuilder] Added DIFlags in LLVMDIBuilderCreateBasicTypewhitequark2018-08-191-0/+1
| | | | | | | | | | | Added DIFlags in LLVMDIBuilderCreateBasicType to add optional DWARF attributes, such as DW_AT_endianity. Patch by Chirag Patel. Differential Revision: https://reviews.llvm.org/D50832 llvm-svn: 340146
* [LLVM-C] [OCaml] Remove LLVMAddBBVectorizePassFangrui Song2018-05-283-14/+0
| | | | | | | | | | | | Summary: It was fully replaced back in 2014, and the implementation was removed 11 months ago by r306797. Reviewers: hfinkel, chandlerc, whitequark, deadalnix Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D47436 llvm-svn: 333378
* [LLVM-C] Consolidate llgo's DIBuilder BindingsRobert Widmann2018-05-104-71/+3
| | | | | | | | | | | | | | Summary: Move and correct LLVMDIBuilderCreateTypedef. This is the last API in DIBuilderBindings.h, so it is being removed and the C API will now be re-exported from IRBindings.h. Reviewers: whitequark, harlanhaskins, deadalnix Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D46725 llvm-svn: 332041
* [LLVM-C] Move DIBuilder Bindings For Temporary MDNodesRobert Widmann2018-05-104-30/+14
| | | | | | | | | | | | | | Summary: Move LLVMTemporaryMDNode and LLVMMetadataReplaceAllUsesWith to the C bindings and add LLVMDeleteTemporaryMDNode for deleting non-RAUW'ed temporary nodes. Reviewers: whitequark, harlanhaskins, deadalnix Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D46632 llvm-svn: 332010
* [LLVM-C] Correct types in Go bindingsRobert Widmann2018-05-091-12/+12
| | | | | | | | | | | | Summary: Fixes a test failure introduced in rL331114. Reviewers: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D46631 llvm-svn: 331850
* [bindings/go] Add Go bindings for volatile loads/storesDavid Bolvansky2018-05-041-0/+2
| | | | | | | | | | | | Reviewers: whitequark Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D46235 llvm-svn: 331530
* IWYU for llvm-config.h in llvm, additions.Nico Weber2018-04-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See r331124 for how I made a list of files missing the include. I then ran this Python script: for f in open('filelist.txt'): f = f.strip() fl = open(f).readlines() found = False for i in xrange(len(fl)): p = '#include "llvm/' if not fl[i].startswith(p): continue if fl[i][len(p):] > 'Config': fl.insert(i, '#include "llvm/Config/llvm-config.h"\n') found = True break if not found: print 'not found', f else: open(f, 'w').write(''.join(fl)) and then looked through everything with `svn diff | diffstat -l | xargs -n 1000 gvim -p` and tried to fix include ordering and whatnot. No intended behavior change. llvm-svn: 331184
* [bindings] Fix dibuilder go bindings after r331114.Benjamin Kramer2018-04-301-7/+7
| | | | llvm-svn: 331171
* [AggressiveInstCombine] Add aggressive inst combiner to the LLVM C API.Craig Topper2018-04-241-0/+3
| | | | | | I just tried to copy what was done for regular InstCombine. Hopefully I didn't miss anything. llvm-svn: 330668
* [LLVM-C] DIBuilder Bindings For Variable ExpressionsRobert Widmann2018-04-233-22/+1
| | | | | | | | | | | | | | Summary: Add DIBuilder bindings for (global) variable expressions, variable value expressions, and debug value intrinsic insertion. Reviewers: harlanhaskins, deadalnix, whitequark Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D45979 llvm-svn: 330661
* [LLVM-C] DIBuilderBindings for Subrange and ArraysRobert Widmann2018-04-232-37/+0
| | | | | | | | | | | | | | Summary: Move Go bindings for subranges and DINode arrays. Reviewers: harlanhaskins, whitequark, deadalnix Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D45933 llvm-svn: 330594
* [LLVM-C] Add DIBuilder Bindings For Variable CreationRobert Widmann2018-04-223-69/+7
| | | | | | | | | | | | | | Summary: Wrap LLVMDIBuilderCreateAutoVariable, LLVMDIBuilderCreateParameterVariable, LLVMDIBuilderCreateExpression, and move and correct LLVMDIBuilderInsertDeclareBefore and LLVMDIBuilderInsertDeclareAtEnd from the Go bindings to the C bindings. Reviewers: harlanhaskins, whitequark, deadalnix Reviewed By: harlanhaskins, whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D45928 llvm-svn: 330555
* [llgo] Move SetSubprogramRobert Widmann2018-04-072-3/+4
| | | | | | | | | | | | | | Summary: Fixes the bots - I moved LLVMSetSubprogram into the DIBuilder bindings, so the Go bindings need to move as well. Reviewers: whitequark Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D45402 llvm-svn: 329505
* [LLVM-C] Move DIBuilder Bindings For Block ScopesRobert Widmann2018-04-075-61/+7
| | | | | | | | | | | | | | Summary: Move LLVMDIBuilderCreateFunction , LLVMDIBuilderCreateLexicalBlock, and LLVMDIBuilderCreateLexicalBlockFile from Go to LLVM-C. Reviewers: whitequark, harlanhaskins, deadalnix Reviewed By: whitequark, harlanhaskins Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D45352 llvm-svn: 329488
* Fix Go IR test for changes in DIBuilder APIHarlan Haskins2018-04-021-1/+5
| | | | llvm-svn: 329021
* Add C API bindings for DIBuilder 'Type' APIsHarlan Haskins2018-04-023-156/+57
| | | | | | | | | | This patch adds a set of unstable C API bindings to the DIBuilder interface for creating structure, function, and aggregate types. This patch also removes the existing implementations of these functions from the Go bindings and updates the Go API to fit the new C APIs. llvm-svn: 328953
* Unbreak the build of the go bindings after r328839.Benjamin Kramer2018-03-311-0/+1
| | | | llvm-svn: 328916
* [bindings/go] Add a missing `,` in the test code to fix a go compileChandler Carruth2018-03-171-1/+1
| | | | | | failure. llvm-svn: 327771
OpenPOWER on IntegriCloud