summaryrefslogtreecommitdiffstats
path: root/llvm/include/llvm-c/Core.h
Commit message (Collapse)AuthorAgeFilesLines
...
* Add support for a union type in LLVM IR. Patch by Talin!Chris Lattner2010-02-121-1/+9
| | | | llvm-svn: 96011
* Reintroduce the InlineHint function attribute.Jakob Stoklund Olesen2010-02-061-1/+2
| | | | | | | | | | | | This time it's for real! I am going to hook this up in the frontends as well. The inliner has some experimental heuristics for dealing with the inline hint. When given a -respect-inlinehint option, functions marked with the inline keyword are given a threshold just above the default for -O3. We need some experiments to determine if that is the right thing to do. llvm-svn: 95466
* Kill ModuleProvider and ghost linkage by inverting the relationship betweenJeffrey Yasskin2010-01-271-12/+14
| | | | | | | | | | | | | | | | | | | | | Modules and ModuleProviders. Because the "ModuleProvider" simply materializes GlobalValues now, and doesn't provide modules, it's renamed to "GVMaterializer". Code that used to need a ModuleProvider to materialize Functions can now materialize the Functions directly. Functions no longer use a magic linkage to record that they're materializable; they simply ask the GVMaterializer. Because the C ABI must never change, we can't remove LLVMModuleProviderRef or the functions that refer to it. Instead, because Module now exposes the same functionality ModuleProvider used to, we store a Module* in any LLVMModuleProviderRef and translate in the wrapper methods. The bindings to other languages still use the ModuleProvider concept. It would probably be worth some time to update them to follow the C++ more closely, but I don't intend to do it. Fixes http://llvm.org/PR5737 and http://llvm.org/PR5735. llvm-svn: 94686
* Stop building RTTI information for *most* llvm libraries. NotableChris Lattner2010-01-221-1/+1
| | | | | | | | | | | missing ones are libsupport, libsystem and libvmcore. libvmcore is currently blocked on bugpoint, which uses EH. Once it stops using EH, we can switch it off. This #if 0's out 3 unit tests, because gtest requires RTTI information. Suggestions welcome on how to fix this. llvm-svn: 94164
* Remove the InlineHint attribute. There are no current or plannedEric Christopher2010-01-151-2/+1
| | | | | | users. llvm-svn: 93558
* "In order to ease automatic bindings generation, it would be helpful if ↵Chris Lattner2010-01-091-34/+36
| | | | | | | | boolean values were distinguishable from integers. The attached patch introduces "typedef int LLVMBool;", and uses LLVMBool instead of int throughout the C API, wherever a boolean value is called for." Patch by James Y Knight! llvm-svn: 93079
* Remove dead debug info intrinsics.Devang Patel2010-01-051-4/+0
| | | | | | | | | | Intrinsic::dbg_stoppoint Intrinsic::dbg_region_start Intrinsic::dbg_region_end Intrinsic::dbg_func_start AutoUpgrade simply ignores these intrinsics now. llvm-svn: 92557
* I forgot to update the prototype for LLVMBuildIntCast when correctingDuncan Sands2009-11-231-1/+1
| | | | | | | | | | | | the body to not pass the name for the isSigned parameter. However it seems that changing prototypes is a big-no-no, so here I revert the previous change and pass "true" for isSigned, meaning this always does a signed cast, which was the previous behaviour assuming the name was not NULL! Some other C function needs to be introduced for the general case of signed or unsigned casts. This hopefully unbreaks the ocaml binding. llvm-svn: 89648
* Remove FreeInst.Victor Hernandez2009-10-261-1/+0
| | | | | | | Remove LowerAllocations pass. Update some more passes to treate free calls just like they were treating FreeInst. llvm-svn: 85176
* Move DataTypes.h to include/llvm/System, update all users. This breaks the lastChandler Carruth2009-10-261-1/+1
| | | | | | direct inclusion edge from System to Support. llvm-svn: 85086
* Remove AllocationInst. Since MallocInst went away, AllocaInst is the only ↵Victor Hernandez2009-10-231-2/+1
| | | | | | subclass of AllocationInst, so it no longer is necessary. llvm-svn: 84969
* Remove MallocInst from LLVM Instructions.Victor Hernandez2009-10-171-1/+0
| | | | llvm-svn: 84299
* add some more hooks to the C bindings, patch by Kenneth Uildriks!Chris Lattner2009-10-121-0/+78
| | | | llvm-svn: 83821
* Add C API calls for building FNeg operations. Patch by KS Sreeram!Dan Gohman2009-09-281-0/+1
| | | | llvm-svn: 83021
* Revert 80959. It isn't sufficient to solve the full problem. And itDan Gohman2009-09-031-0/+5
| | | | | | introduced regressions in the Ocaml bindings tests. llvm-svn: 80969
* Remove the API for creating ConstantExprs with the nsw, nuw, inbounds,Dan Gohman2009-09-031-5/+0
| | | | | | | | | | | | | | | and exact flags. Because ConstantExprs are uniqued, creating an expression with this flag causes all expressions with the same operands to have the same flag, which may not be safe. Add, sub, mul, and sdiv ConstantExprs are usually folded anyway, so the main interesting flag here is inbounds, and the constant folder already knows how to set the inbounds flag automatically in most cases, so there isn't an urgent need for the API support. This can be reconsidered in the future, but for now just removing these API bits eliminates a source of potential trouble with little downside. llvm-svn: 80959
* Make sure we specify no arguments for context functions.Erick Tryzelaar2009-08-301-2/+2
| | | | llvm-svn: 80525
* Add an 'inline hint' attribute to represent sourceDale Johannesen2009-08-261-1/+2
| | | | | | | | code hints that it would be a good idea to inline a function ("inline" keyword). No functional change yet; FEs do not emit this and inliner does not use it. llvm-svn: 80063
* Expose some extra functions to llvm-cErick Tryzelaar2009-08-191-1/+2
| | | | llvm-svn: 79413
* Expose creating constant ints and floats from strings in llvm-c.Erick Tryzelaar2009-08-161-0/+9
| | | | llvm-svn: 79213
* Add an llvm-c function that lets you insert an instruction with a name.Erick Tryzelaar2009-08-161-0/+2
| | | | llvm-svn: 79163
* Expose most of the Constant creation functions to llvm-c.Erick Tryzelaar2009-08-161-0/+20
| | | | llvm-svn: 79160
* Expose most of the rest of IRBuilder's functions to llvm-c.Erick Tryzelaar2009-08-161-0/+40
| | | | llvm-svn: 79159
* Expose LLVMContext to llvm-c.Erick Tryzelaar2009-08-141-2/+49
| | | | llvm-svn: 78964
* Put new enum at end of list to avoid changing ABI.Bill Wendling2009-07-201-2/+2
| | | | llvm-svn: 76447
* Add plumbing for the `linker_private' linkage type. This type is meant forBill Wendling2009-07-201-0/+1
| | | | | | | | | "private" symbols which the assember shouldn't strip, but which the linker may remove after evaluation. This is mostly useful for Objective-C metadata. This is plumbing, so we don't have a use of it yet. More to come, etc. llvm-svn: 76385
* Fix copy & paste errorsAnton Korobeynikov2009-07-171-8/+8
| | | | llvm-svn: 76216
* Add missed attributes to C bindingsAnton Korobeynikov2009-07-171-0/+8
| | | | llvm-svn: 76214
* Add support for naked functionsAnton Korobeynikov2009-07-171-1/+2
| | | | llvm-svn: 76198
* Update the C bindings to keep the LLVMTypeKind up to date between the C/C++Chris Lattner2009-07-151-1/+2
| | | | | | stuff. Patch by Zoltan Varga! llvm-svn: 75842
* add missing *, patch by Peter O'Gorman!Chris Lattner2009-07-101-1/+1
| | | | llvm-svn: 75259
* Remove the vicmp and vfcmp instructions. Because we never had a release withNick Lewycky2009-07-081-2/+0
| | | | | | | these instructions, no autoupgrade or backwards compatibility support is provided. llvm-svn: 74991
* Add two new accessors to the C bindings, patch by Wladimir van der Laan!Chris Lattner2009-07-061-0/+2
| | | | llvm-svn: 74836
* Restore other bits of the C API that I tore up. All pre-existing APIs ↵Owen Anderson2009-07-021-0/+2
| | | | | | | | | | default to using the default global context, while new *InContext() APIs have been added that take a LLVMContextRef parameter. Apologies to anyone affected by this breakage. llvm-svn: 74694
* Add a C wrapper for accessing the global default context.Owen Anderson2009-07-021-0/+1
| | | | llvm-svn: 74675
* Add a pointer to the owning LLVMContext to Module. This requires threading ↵Owen Anderson2009-07-011-0/+10
| | | | | | | | | | LLVMContext through a lot of the bitcode reader and ASM parser APIs, as well as supporting it in all of the tools. Patches for Clang and LLVM-GCC to follow. llvm-svn: 74614
* OCaml parameter attribute bindings from PR2752.Duncan Sands2009-05-061-0/+2
| | | | | | Incomplete, but better than nothing. llvm-svn: 71081
* add AvailableExternally linkage to C bindings.Chris Lattner2009-04-131-0/+1
| | | | llvm-svn: 68942
* It makes no sense to have a ODR version of commonDuncan Sands2009-03-111-3/+1
| | | | | | linkage, so remove it. llvm-svn: 66690
* Remove the one-definition-rule version of extern_weakDuncan Sands2009-03-111-3/+1
| | | | | | | linkage: this linkage type only applies to declarations, but ODR is only relevant to globals with definitions. llvm-svn: 66650
* Introduce new linkage types linkonce_odr, weak_odr, common_odrDuncan Sands2009-03-071-4/+14
| | | | | | | | | | | | | | | | | | | | | and extern_weak_odr. These are the same as the non-odr versions, except that they indicate that the global will only be overridden by an *equivalent* global. In C, a function with weak linkage can be overridden by a function which behaves completely differently. This means that IP passes have to skip weak functions, since any deductions made from the function definition might be wrong, since the definition could be replaced by something completely different at link time. This is not allowed in C++, thanks to the ODR (One-Definition-Rule): if a function is replaced by another at link-time, then the new function must be the same as the original function. If a language knows that a function or other global can only be overridden by an equivalent global, it can give it the weak_odr linkage type, and the optimizers will understand that it is alright to make deductions based on the function body. The code generators on the other hand map weak and weak_odr linkage to the same thing. llvm-svn: 66339
* Add dyn_cast_or_null bindings for some additional classes missed in r61252.Gordon Henriksen2008-12-191-1/+18
| | | | llvm-svn: 61253
* C bindings for dyn_cast_or_null.Gordon Henriksen2008-12-191-10/+65
| | | | | | This operation can be used to build dyn_cast, isa, and cast. llvm-svn: 61252
* This adds some missing functions to the C binding:Chris Lattner2008-12-171-0/+9
| | | | | | | | | | - ability to insert previously created instructions using a builder - creation of aliases - creation of inline asm constants Patch by Zoltan Varga! llvm-svn: 61153
* Add C bindings for extractvalue and insertvalue. Patch by Frits van Bommel!Dan Gohman2008-11-031-0/+10
| | | | llvm-svn: 58650
* Large mechanical patch.Devang Patel2008-09-251-17/+17
| | | | | | | | | | | | | | | s/ParamAttr/Attribute/g s/PAList/AttrList/g s/FnAttributeWithIndex/AttributeWithIndex/g s/FnAttr/Attribute/g This sets the stage - to implement function notes as function attributes and - to distinguish between function attributes and return value attributes. This requires corresponding changes in llvm-gcc and clang. llvm-svn: 56622
* PR2731: C and Ocaml bindings for setTailCall and isTailCall.Gordon Henriksen2008-08-301-0/+4
| | | | | | Based on patch by Giorgos Korfiatis. llvm-svn: 55570
* Rename some GC classes so that their roll will hopefully be clearer.Gordon Henriksen2008-08-171-2/+2
| | | | | | | | | | | | | | | | | | In particular, Collector was confusing to implementors. Several thought that this compile-time class was the place to implement their runtime GC heap. Of course, it doesn't even exist at runtime. Specifically, the renames are: Collector -> GCStrategy CollectorMetadata -> GCFunctionInfo CollectorModuleMetadata -> GCModuleInfo CollectorRegistry -> GCRegistry Function::getCollector -> getGC (setGC, hasGC, clearGC) Several accessors and nested types have also been renamed to be consistent. These changes should be obvious. llvm-svn: 54899
* Delete a redundant binding, LLVMHasInitializer.Gordon Henriksen2008-08-091-1/+0
| | | | | | Please use !LLVMIsDeclaration instead. llvm-svn: 54572
* Have IRBuilder take a template argument on whether or not to preserveEric Christopher2008-08-081-1/+1
| | | | | | | names. This can save a lot of allocations if you aren't going to be looking at the output. llvm-svn: 54546
OpenPOWER on IntegriCloud