Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Nov 04 21:03
    tannergooding commented #116
  • Oct 23 14:53
    jangofett4 commented #91
  • Oct 19 23:15
    cloudrex commented #116
  • Oct 09 12:50
    TillAlex opened #117
  • Sep 23 20:13
    tannergooding commented #116
  • Sep 20 17:38
    tannergooding assigned #116
  • Sep 20 17:30
    tannergooding opened #116
  • Sep 17 22:07
    TillAlex commented #115
  • Sep 17 22:03
    tannergooding commented #115
  • Sep 17 22:02
    TillAlex commented #115
  • Sep 17 15:08
    tannergooding commented #115
  • Sep 17 14:15
    TillAlex closed #115
  • Sep 17 14:15
    TillAlex commented #115
  • Sep 15 21:34
    jangofett4 commented #91
  • Sep 15 21:33
    jangofett4 commented #91
  • Sep 15 20:49
    tannergooding commented #91
  • Sep 15 20:48
    tannergooding commented #91
  • Sep 15 20:12
    jangofett4 commented #91
  • Sep 14 21:46
    mjsabby commented #115
  • Sep 14 21:45
    mjsabby commented #91
Mukul Sabharwal
@mjsabby
@TChatzigiannakis sorry for being MIA. I'm now working on getting LLVM 6.0 release going. A quick question -- how far do you think the OO work has come along? Is it possible to integrate it?
Theodoros Chatzigiannakis
@TChatzigiannakis
@mjsabby Hi, sorry for being MIA as well! Yes, I think it's ready for merging (has been since Christmas). I didn't merge it myself because I'd like you to look at it first and make sure you agree with how it's implemented.
I think it's best if we merge it before you generate the LLVM 6.0 bindings. =)
irpbc
@irpbc
Hi everyone. Can somebody here help me with my project. I would like to use some LLVM C++ api which is not exposed through C functions. I have found a way on macOS, but Windows is a challenge. I have some C++ code that should be linked with LLVM shared lib. I can see that LLVMSharp project builds its own LLVM shared lib and explicitly exports the C api. Is there a way to call a C++ function from my native code?
irpbc
@irpbc
Only alternative I can think of is to build my own libLLVM.dll from LLVM static libs through my cmake project, and exclude your libLLVM from nuget dependencies.
irpbc
@irpbc
Hi all. Just to reporting that I tried the alternative and succeeded :smile: . I built LLVM from source with VS2017, and linked it into my piece of code (I left only X86 arch. so I got 23MB dll). I also copied your .def file.
frederik-h
@frederik-h
Hi, @irpbc This seems to be quite related to an issue that I have opened recently. It would be nice to have some documentation how one is supposed to build the DLL
@mjsabby I am also using your powershell script to generate a custom LLVM DLL. I could also contribute some documentation on building the DLL.
raizam
@raizam
Hi @mjsabby, I've just updated LLVMSharp and noticed it upgraded to 6.0, where can I find llvmlib.dll? thanks
raizam
@raizam
Mukul Sabharwal
@mjsabby
@raizam yes that's basically 6.0.0 .. I just put the beta tag because there were some new untested APIs for a sister team that I added.
I'll shortly convert it to a final release
raizam
@raizam
@mjsabby ok thanks a lot! you've done an amazing work
I'd like to improve the LLVMSharp Api, would you accept PRs?
I want to hide extern functions, and make everything object oriented
this would introduce breaking changes but hey, it's v6
Mukul Sabharwal
@mjsabby
@TChatzigiannakis has done work in this area and has a pretty good set in a branch in the main repo. It has to be a layer on top without breaking the existing API. The reality is that we have the functional API because it is allocation-free and speedy so that must continue to be there.
raizam
@raizam
when I said object-oriented, I meant to keep using structs, just like how it is now. so I'll check out his work
raizam
@raizam
@mjsabby Are these bindings based on the original LLVM C exports or is this a custom build with new functions?
For example function LLVMLinkInGC doesn't exist
Mukul Sabharwal
@mjsabby
LLVMLinkInGC is from a previous build where there was a custom binding added.
I don't think there are any additional ones that are specific to LLVMSharp
raizam
@raizam
ok perfect :)
Theodoros Chatzigiannakis
@TChatzigiannakis
@mjsabby Hi, do you want me to look into merging the OOAPI branch, so that the next version of LLVMSharp ships with the LLVMSharp.Api namespace?
Willow Snow
@sneow
There's a huge jump in the Kaleidoscope guide where the enums (i.e. ExprType) are never actually talked about
Andy Jansson
@andyjansson
Is there any effort underway to migrate LibLLVM to .net standard?
Mukul Sabharwal
@mjsabby
I just commented on the issue, I'm going to pull the plug on .NET Framework and just have .NETStandard 2.0
@TChatzigiannakis I looked it's been a while and I think we should merge it. My concern is your PR has way too many commits, can you clean up the branch so there is only commit from master?
To all, LLVM 7.0 will really help this project because the biggest pain I have with these upgrades it that we have custom bindings that we carry around and it's a weight on me when I have to upgrade. With LLVM 7.0 the DIBuilder stuff is now in-tree in LLVM.
I'm also going to using Azure DevOps to publish binaries with SourceLink enabled so you can debug into LLVM on Windows at least.
Theodoros Chatzigiannakis
@TChatzigiannakis
@mjsabby Do you need to do anything before we merge my PR or should I just go ahead and merge it now?
Mukul Sabharwal
@mjsabby
done
Theodoros Chatzigiannakis
@TChatzigiannakis
Alright, so next item is generating the bindings for the LLVM 7.0?
And then fixing the API to match?
Andy Jansson
@andyjansson
Hello.
yowl
@yowl
Hi, I'm having a little trouble understanding landingpad and the personality. Is the personality function (in my case , __gxx_personality_v0) called before execution moves to the landingpad? Does the landingpad have any arguments, or is that up to the personality function to for example, push on to the stack?
yowl
@yowl
I understand that I should be able to var exPtr = LLVM.BuildExtractValue(landingPadBuilder, pad, 0, "ex"); but this throws an access violation exception. What is the second parameter, I thought it would be the result of LLVMValueRef pad = LLVM.BuildLandingPad(landingPadBuilder, LLVM.PointerType(LLVM.Int8Type(), 0), GxxPersonality, 1, ""); ?
yowl
@yowl
Ignore me, I had the wrong signature for the personality.
Mukul Sabharwal
@mjsabby
I've put out libLLVM 6.0.1 and libLLVM 7.0.1 ... now onwards to get the managed APIs filled. @TChatzigiannakis if you'll want to put all the OO stuff, beware LLVM 7.0.1 has ~100 new functions
yowl
@yowl
Anyone got an example for LLVM.BuildSwitch, specifically the second V argument which I guess is the array of int, blockrefs?
ah, I see there's and LLVM.AddCase
yowl
@yowl
LLVM 8 has the wasm backend as non experimental, any chance of a build for it?
yowl
@yowl
I make that sound as though its a 5 minute job which I'm sure its not. I've added my upvote to Microsoft/LLVMSharp#84
yowl
@yowl

I'm trying to build libLLVM against LLVM 8.0.0 and hitting a mismatch in the dynamic/static link settings

LLVMAArch64AsmParser.lib(AArch64AsmParser.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in LLVMSharp.obj

which is right way to go, dynamic or static?

yowl
@yowl
I've build libllvm.dll and llvmsharp nuget package against llvm 8.0.0, but how do I get a package for libllvm.dll?
╬╗tlas
@cloudrex
Hi guys, anyone online?
I have a quick question, how do I obtain the IR code of a module, and put it in a string?
should I use LLVM.PrintModuleToString()?
I've tried that, but it returns IntPr ?!