[llvm-commits] More C API wrappers

Eric Christopher echristo at gmail.com
Mon Nov 19 14:09:58 PST 2012


> It uses common-lisp wrappers of the LLVM-C API.
>
>
> Going through the list of things I added:
> >     LLVMBuildFence
> >     LLVMBuildAtomicCmpXchg
> >     LLVMBuildAtomicRMW
> >     LLVMGetAtomicOrdering/LLVMSetAtomicOrdering
> >     LLVMGetSynchronizationScope/LLVMSetSynchronizationScope
>
> >     Also, fix LLVMGetVolatile/LLVMSetVolatile to handle the new
> >     memory instructions.
>
>
> I need support for compiling atomic operations. In 2009, they were
> intrinsics. Now they're separate instructions. LLVMBuild* for the new
> instructions, LLVM{Get/Set}{AtomicOrdering,SynchronizationScope} both for
> the new instructions and for creating atomic Load/Store instructions.
>
>

These seem reasonable.


>
> The rest of the additions I had wrapped myself back in 2009, but I figured
> I ought to contribute them upstream instead:
>
> >     LLVMParseAssemblyString
>
> This is to allow inserting a bit of raw llvm-asm into an
> otherwise-programamtically built module, I use it for some support routines
> emitted by the compiler.
>
>
This somewhat horrifies me. I'm not sure I see the general use in such a
way that I want to sign up to support it :)


> >     LLVMPrintModuleToString
> >     LLVMPrintTypeToString
> >     LLVMPrintValueToString
>
> It's useful to be able to print these types to help debug what's going on.
>
>
These seem reasonable, not sure why you'd want to be able to do this via
the C API though?


> >     LLVMIntPtrTypeInContext
>
> This seems like a pretty obvious omission: LLVMIntPtrType is already
> wrapped, but only with a version which uses the global context. Everything
> else that uses a context has an InContext version.
>
>
Also seems reasonable.

-eric
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121119/232f7b5f/attachment.html>


More information about the llvm-commits mailing list