summaryrefslogtreecommitdiffstats
path: root/llvm/bindings
Commit message (Collapse)AuthorAgeFilesLines
...
* [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
* [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-262-2/+2
| | | | | | "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
* Reverting r315590; it did not include changes for llvm-tblgen, which is ↵Aaron Ballman2017-10-151-1/+1
| | | | | | | | causing link errors for several people. Error LNK2019 unresolved external symbol "public: void __cdecl `anonymous namespace'::MatchableInfo::dump(void)const " (?dump@MatchableInfo@?A0xf4f1c304@@QEBAXXZ) referenced in function "public: void __cdecl `anonymous namespace'::AsmMatcherEmitter::run(class llvm::raw_ostream &)" (?run@AsmMatcherEmitter@?A0xf4f1c304@@QEAAXAEAVraw_ostream@llvm@@@Z) llvm-tblgen D:\llvm\2017\utils\TableGen\AsmMatcherEmitter.obj 1 llvm-svn: 315854
* [dump] Remove NDEBUG from test to enable dump methods [NFC]Don Hinton2017-10-121-1/+1
| | | | | | | | | | | | | | | Summary: Add LLVM_FORCE_ENABLE_DUMP cmake option, and use it along with LLVM_ENABLE_ASSERTIONS to set LLVM_ENABLE_DUMP. Remove NDEBUG and only use LLVM_ENABLE_DUMP to enable dump methods. Move definition of LLVM_ENABLE_DUMP from config.h to llvm-config.h so it'll be picked up by public headers. Differential Revision: https://reviews.llvm.org/D38406 llvm-svn: 315590
* Update the Go bindings for r309426 (remove offset from llvm.dbg.value)Adrian Prantl2017-07-283-6/+5
| | | | llvm-svn: 309448
* [OCaml] Fix undefined reference to LLVMDumpType() with NDEBUGMichal Gorny2017-07-273-0/+11
| | | | | | | | | | | | | | | Account for the possibility of LLVMDumpType() not being available with NDEBUG in the OCaml bindings. If it is not built into LLVM, make the dump function raise an exception. Since rL293359, the dump functions are built only if either NDEBUG is not defined, or LLVM_ENABLE_DUMP is defined. As a result, if the dump functions are not built in LLVM, the dynamic OCaml libraries fail to load due to undefined LLVMDumpType symbol. Differential Revision: https://reviews.llvm.org/D35899 llvm-svn: 309321
* [NFC] Remove multiple semicolonsMandeep Singh Grang2017-06-281-1/+1
| | | | | | | | | | | | Reviewers: bogner, whitequark, mgrang Reviewed By: mgrang Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D34785 llvm-svn: 306613
* [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
* [LLVM-C] [OCaml] Expose Type::subtypes.whitequark2017-06-053-0/+19
| | | | | | | | | | | | | The C functions added are LLVMGetNumContainedTypes and LLVMGetSubtypes. The OCaml function added is Llvm.subtypes. Patch by Ekaterina Vaartis. Differential Revision: https://reviews.llvm.org/D33677 llvm-svn: 304709
* [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
OpenPOWER on IntegriCloud