summaryrefslogtreecommitdiffstats
path: root/llvm/bindings/go
Commit message (Collapse)AuthorAgeFilesLines
* [bindings/go] Fix building on 32-bit systems (ARM etc.)whitequark2019-02-161-1/+1
| | | | | | | | | | | | | | | | | | | Summary: The patch in https://reviews.llvm.org/D53883 (by me) fails to build on 32-bit systems like ARM. Fix the array size to be less ridiculously large. 2<<20 should still be enough for all practical purposes. Bug: https://bugs.llvm.org/show_bug.cgi?id=40426 Reviewers: whitequark, pcc Reviewed By: whitequark Subscribers: javed.absar, kristof.beyls, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58030 llvm-svn: 354207
* [NewPM] Second attempt at porting ASanLeonard Chan2019-02-131-1/+2
| | | | | | | | | | | | | | | | | | | | This is the second attempt to port ASan to new PM after D52739. This takes the initialization requried by ASan from the Module by moving it into a separate class with it's own analysis that the new PM ASan can use. Changes: - Split AddressSanitizer into 2 passes: 1 for the instrumentation on the function, and 1 for the pass itself which creates an instance of the first during it's run. The same is done for AddressSanitizerModule. - Add new PM AddressSanitizer and AddressSanitizerModule. - Add legacy and new PM analyses for reading data needed to initialize ASan with. - Removed DominatorTree dependency from ASan since it was unused. - Move GlobalsMetadata and ShadowMapping out of anonymous namespace since the new PM analysis holds these 2 classes and will need to expose them. Differential Revision: https://reviews.llvm.org/D56470 llvm-svn: 353985
* 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-1926-104/+78
| | | | | | | | | | | | | | | | | 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
* [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
* [TI removal] Remove TerminatorInst references from bindings.Chandler Carruth2018-10-181-1/+0
| | | | | | | | | | 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
* [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] 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
* [bindings] Fix dibuilder go bindings after r331114.Benjamin Kramer2018-04-301-7/+7
| | | | llvm-svn: 331171
* [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
* [X86] Added support for nocf_check attribute for indirect Branch TrackingOren Ben Simhon2018-03-171-0/+1
| | | | | | | | | | | | | | | X86 Supports Indirect Branch Tracking (IBT) as part of Control-Flow Enforcement Technology (CET). IBT instruments ENDBR instructions used to specify valid targets of indirect call / jmp. The `nocf_check` attribute has two roles in the context of X86 IBT technology: 1. Appertains to a function - do not add ENDBR instruction at the beginning of the function. 2. Appertains to a function pointer - do not track the target function of this pointer by adding nocf_check prefix to the indirect-call instruction. This patch implements `nocf_check` context for Indirect Branch Tracking. It also auto generates `nocf_check` prefixes before indirect branchs to jump tables that are guarded by range checks. Differential Revision: https://reviews.llvm.org/D41879 llvm-svn: 327767
* [LLVM-C] [bindings/go] Add C and Golang bindings for COMDATReid Kleckner2018-03-141-8/+44
| | | | | | | | Patch by Ben Clayton Differential Revision: https://reviews.llvm.org/D44086 llvm-svn: 327551
* Because of CVE-2018-6574, some compiler options and linker options are ↵Eric Christopher2018-02-231-0/+8
| | | | | | | | | | | | | | | | | | | | restricted to prevent arbitrary code execution. https://github.com/golang/go/issues/23672 By this change, building a Go code with LLVM Go bindings causes a compilation error as follows. go build llvm.org/llvm/bindings/go/llvm: invalid flag in #cgo LDFLAGS: -Wl,-headerpad_max_install_names llvm-go tool generates cgo LDFLAGS directive from `llvm-config --ldflags` and it contains -Wl,option options. But -Wl,option is banned by default. To avoid this problem, we need to set $CGO_LDFLAGS_ALLOW environment variable to notify a compiler that the flags should be allowed. $ export CGO_LDFLAGS_ALLOW='-Wl,(-search_paths_first|-headerpad_max_install_names)' By default for go 1.10 and go 1.9.5 these options should appear in the accepted set of options, however, if you're running into the error it's useful to have this documented. Patch by Ryuichi Hayashida llvm-svn: 325946
* [NFC] fix trivial typos in comments and documentsHiroshi Inoue2018-01-261-1/+1
| | | | | | "in in" -> "in", "on on" -> "on" etc. llvm-svn: 323508
* [bindings/go] fix vet errorsAndrew Wilkins2017-12-281-2/+2
| | | | | | | | | | Fix "go vet" errors, which will be run automatically with "go test" as of Go 1.10. Patch by Karsten Weiss! llvm-svn: 321509
* Update go bindings to use new functions from rL317135.Sam McCall2017-11-023-35/+14
| | | | | | This fixes duplicate symbol problems. llvm-svn: 317195
* Revert "Remove some of the go specific C bindings for debug info now that ↵Eric Christopher2017-11-022-0/+29
| | | | | | | | they've been migrated into the main C API." This reverts commits r317151 and 317152 llvm-svn: 317154
* Fix for go bindings header to match previous commit.Eric Christopher2017-11-021-10/+0
| | | | llvm-svn: 317152
* Remove some of the go specific C bindings for debug info now that they've ↵Eric Christopher2017-11-021-19/+0
| | | | | | | | been migrated into the main C API. Fixes a go bindings breakage after r317135. llvm-svn: 317151
* Update the Go bindings for r309426 (remove offset from llvm.dbg.value)Adrian Prantl2017-07-283-6/+5
| | | | llvm-svn: 309448
* [Go] Subtypes functionAndrew Wilkins2017-06-082-0/+32
| | | | | | | | | | This patch adds LLVMGetSubtypes to Go API (as Type.Subtypes), tests included. Patch by Ekaterina Vaartis! Differential Revision: https://reviews.llvm.org/D33901 llvm-svn: 304968
* [go bindings] Rmove duplicated conversion function definitions after r300843.Benjamin Kramer2017-04-201-2/+0
| | | | llvm-svn: 300872
* Introducing LLVMMetadataRefAmaury Sechet2017-04-171-11/+0
| | | | | | | | | | | | | | | | | | | Summary: This seems like an uncontroversial first step toward providing access to the metadata hierarchy that now exists in LLVM. This should allow for good debug info support from C. Future plans are to deprecate API that take mixed bags of values and metadata (mainly the LLVMMDNode family of functions) and migrate the rest toward the use of LLVMMetadataRef. Once this is in place, mapping of DIBuilder will be able to start. Reviewers: mehdi_amini, echristo, whitequark, jketema, Wallbraker Reviewed By: Wallbraker Subscribers: Eugene.Zelenko, axw, mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D19448 llvm-svn: 300447
* Go binding: Add GetCurrentDebugLocation to obtain debug location from builderAndrew Wilkins2017-03-314-0/+74
| | | | | | | | | | | | | | | | | | | Summary: Currently Go binding only has SetCurrentDebugLocation method. I added GetCurrentDebugLocation method to IRBuilder instance. I added this because I want to save current debug location, change debug location temporary and restore the saved one finally. This is useful when source location jumps and goes back after while LLVM IR generation. I also added tests for this to ir_test.go. I confirmed that all test passed with this patch based on r298890 Patch by Ryuichi Hayashida! Differential Revision: https://reviews.llvm.org/D31415 llvm-svn: 299185
* [DebugInfo] Emit address space with DW_AT_address_class attribute for ↵Konstantin Zhuravlyov2017-03-081-1/+2
| | | | | | | | pointer and reference types Differential Revision: https://reviews.llvm.org/D29670 llvm-svn: 297320
* Go binding: Add methods for missing PassManagerBuilder C APIsAndrew Wilkins2017-02-171-0/+20
| | | | | | | | Patch by Ryuichi Hayashida! Differential Revision: http://reviews.llvm.org/D30042 llvm-svn: 295420
* Fix go bindings after r289702 (hopefully, don't really know how to buildDaniel Jasper2016-12-151-2/+2
| | | | | | them, build.sh seems to be broken). llvm-svn: 289775
OpenPOWER on IntegriCloud