David Power via llvm-dev
2015-Nov-26 18:23 UTC
[llvm-dev] Language Changes in 3.7 and beyond
Hello, I am writing a compiler which outputs LLVM for my own custom language. Thanks to everybody who has contributed to the project it really is an impressive tool chain. I downloaded the 3.7 release from the website and I noticed that there had been a change to getelementptr. I can see the new syntax in the latest version of the Language Reference Manual but I could find no other reference to the change. Is there a definitive list of language changes for each release of LLVM? Also, are there any more planned changes that are in the pipeline? Many thanks David
Alex Bradbury via llvm-dev
2015-Nov-26 18:51 UTC
[llvm-dev] Language Changes in 3.7 and beyond
On 26 November 2015 at 18:23, David Power via llvm-dev <llvm-dev at lists.llvm.org> wrote:> Hello, > > I am writing a compiler which outputs LLVM for my own custom language. Thanks to everybody who has contributed to the project it really is an impressive tool chain. > > I downloaded the 3.7 release from the website and I noticed that there had been a change to getelementptr. > > I can see the new syntax in the latest version of the Language Reference Manual but I could find no other reference to the change. > > Is there a definitive list of language changes for each release of LLVM? Also, are there any more planned changes that are in the pipeline?Hi David, The definitive list of changes is of course the commit log. The release notes usually do a pretty good job of summarising changes http://llvm.org/releases/3.7.0/docs/ReleaseNotes.html and does include some info on the removal of pointer types: """ LLVM IR and APIs are in a period of transition to aid in the removal of pointer types (the end goal being that pointers are typeless/opaque - void*, if you will). Some APIs and IR constructs have been modified to take explicit types that are currently checked to match the target type of their pre-existing pointer type operands. Further changes are still needed, but the more you can avoid using PointerType::getPointeeType, the easier the migration will be. """ I do my best to point out changes that will effect out-of-tree targets or developers targeting LLVM in LLVM Weekly (http://llvmweekly.org/) and try to highlight mailing list discussions regarding future changes. e.g. many of these changes were discussed here http://article.gmane.org/gmane.comp.compilers.llvm.devel/81923 Best, Alex
David Blaikie via llvm-dev
2015-Nov-26 18:56 UTC
[llvm-dev] Language Changes in 3.7 and beyond
On Thu, Nov 26, 2015 at 10:51 AM, Alex Bradbury via llvm-dev < llvm-dev at lists.llvm.org> wrote:> On 26 November 2015 at 18:23, David Power via llvm-dev > <llvm-dev at lists.llvm.org> wrote: > > Hello, > > > > I am writing a compiler which outputs LLVM for my own custom language. > Thanks to everybody who has contributed to the project it really is an > impressive tool chain. > > > > I downloaded the 3.7 release from the website and I noticed that there > had been a change to getelementptr. > > > > I can see the new syntax in the latest version of the Language Reference > Manual but I could find no other reference to the change. > > > > Is there a definitive list of language changes for each release of LLVM? > Also, are there any more planned changes that are in the pipeline? >As for further changes - yeah, there's probably at least one more change to the IR that'll happen (byval) and a lot of changes to internal APIs as the typeless pointer work comes along. For more details I gave a talk at the LLVM Dev meeting this year: https://www.youtube.com/watch?v=OWgWDx_gB1I> > Hi David, > > The definitive list of changes is of course the commit log. The > release notes usually do a pretty good job of summarising changes > http://llvm.org/releases/3.7.0/docs/ReleaseNotes.html and does include > some info on the removal of pointer types: > > """ > LLVM IR and APIs are in a period of transition to aid in the removal > of pointer types (the end goal being that pointers are typeless/opaque > - void*, if you will). Some APIs and IR constructs have been modified > to take explicit types that are currently checked to match the target > type of their pre-existing pointer type operands. Further changes are > still needed, but the more you can avoid using > PointerType::getPointeeType, the easier the migration will be. > """ > > I do my best to point out changes that will effect out-of-tree targets > or developers targeting LLVM in LLVM Weekly (http://llvmweekly.org/) > and try to highlight mailing list discussions regarding future > changes. e.g. many of these changes were discussed here > http://article.gmane.org/gmane.comp.compilers.llvm.devel/81923 > > Best, > > Alex > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151126/59930960/attachment.html>
Tim Northover via llvm-dev
2015-Nov-26 18:56 UTC
[llvm-dev] Language Changes in 3.7 and beyond
On 26 November 2015 at 10:23, David Power via llvm-dev <llvm-dev at lists.llvm.org> wrote:> Is there a definitive list of language changes for each release of LLVM? Also, are there any more planned changes that are in the pipeline?If you're after stability, you might want to look into generating bitcode instead of textual IR. We have pretty strong guarantees about being able to read .bc files from older versions of LLVM (at least until the mythical 4.0 release). Cheers. Tim.