Skip to content

Conversation

@hyc
Copy link

@hyc hyc commented Jan 23, 2014

These are changes I needed to get things to compile for llvm 3.3. I have no confidence that these changes are correct, I'm still trying to get thru the build of libc and then the test suite. Any review/help/suggestions appreciated.

hyc added 19 commits January 23, 2014 09:38
llvm-ld is gone, use llvm-link instead
The -emit-llvm option is gone, use -flto instead to emit
IR source, then pipe to llvm-as to generate IR bitcode files.
Fix SEGV on function calls. (Not sure result is correct.)
Ugly hacks for RegisterPass compatibility
Unwind is obsolete
Stupid hacks to silence compile errors in debug output
Ugly hack to hide compile error. This needs revisiting.
Fix SEGV in pass initialization
Fix getCaseValue API change
Fix for deleted and changed APIs
TODO: check if VectorTy and StructTy need corresponding change.
again, order of arguments
CFGSimplificationPass reinserts switch statements, which are
still broken, so move it to before LowerSwitch
Ignore unsupported memory use marker intrinsics
Fix args for indirect function calls
@davidar
Copy link
Owner

davidar commented Mar 4, 2014

Thanks for working on getting LLJVM compatible with a more recent release of LLVM. I haven't worked with LLJVM or LLVM in quite a while, so I can't comment on your patches in any great detail at the moment. If you have any general questions about LLJVM, or any particular problems in getting it working with your changes, send me an email and I'll do my best to help.

@hyc
Copy link
Author

hyc commented Mar 4, 2014

Currently the most obvious problem is the python driver script; the linker is a lot stupider now and options that used to work for llvm-ld are no longer available. To be honest I've completely lost any hope of pushing this forward any further; LLVM itself is just too aggravating to work with.

@davidar
Copy link
Owner

davidar commented Mar 5, 2014

Yeah, that script was rather hacky to begin with so I'm not surprised it's broken. A better solution would probably have to integrate with clang more closely, however that would work.

My interest in LLJVM was in getting it to the proof-of-concept stage - currently I have no real practical use for it myself, but I'm glad other people have found uses - so there's a lot of work that still needs to be done for it to be able to handle serious projects (or even keeping up with the ever-changing state of LLVM apparently). Thanks again for sharing what you've done so far - I'll leave this issue open in case anyone feels like taking it further.

@hyc
Copy link
Author

hyc commented Mar 5, 2014

For what it's worth, the current state of the code is good enough to get some of the bsdgames working and such. It seems to choke on some of the larger test programs though. Also I had to manually compile a lot of the demo programs, because I didn't have the driver script in good enough shape for the Makefiles to "just work"...

@davidar
Copy link
Owner

davidar commented Jun 30, 2015

Thanks. I've pushed your changes to https://github.com/davidar/lljvm/tree/llvm-3.3 in case anyone wants to deal with the remaining problems at some point.

@davidar davidar closed this Jun 30, 2015
@davidar davidar reopened this Jul 1, 2015
@davidar davidar mentioned this pull request Jul 2, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants