Announcement

Collapse
No announcement yet.

LLVM Began Its Dominance Of The Compiler Landscape This Decade

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #21
    Originally posted by bridgman View Post

    For what it's worth, we started using LLVM in part because of the license (in the pre-Clang days pairing a proprietary C++ front end with LLVM back end was common in proprietary drivers) but these days pretty much everything we do goes upstream because it simplifies ongoing maintenance.
    Thanks for the insight from AMD GPUs perspective. Good thing that due to the project moving fast due to various actors, most of them have individual interest to upstream their work. Which in this case compensate the eventual negative effects of a non-copyleft license.

    Comment


    • #22
      Originally posted by Volta View Post

      That's why nobody should support non GPL software.
      I guess there are other comparable copyleft licenses that are fine.

      And maybe weak copyleft (like the LGPL) could be a desirable trade-off for compatibility between two libre/open source pieces of code. To avoid collateral damage of strong copyleft in some cases.

      Are the above impressions correct?

      Comment


      • #23

        Comment


        • #24
          Originally posted by Marc Driftmeyer View Post

          Who the hell do you think invented Clang and the vast infrastructure of LLVM? It wasn't Lattner. The heavy lifting was the billions and world class teams at Apple, which later Sony, Google, IBM, HP, Cray, Oracle, etc., joined in on. Lattner was a broke Ph.D student when Apple hired him, his wife and dozens of others to compliment their already large development staff. They gave him wide latitude and paid exceedingly well to tinker for the next decade, before bolting to Tesla [and bailing rapidly] then Google.

          You keep living a deluded world that FOSS has saved us from tyranny.
          LMAO

          The LLVM project started in 2000 at the University of Illinois. And yes Lattner was the guy behind it. His Master Thesis was about LLVM.

          "LLVM: An Infrastructure for Multi-Stage Optimization", Chris Lattner.
          Masters Thesis, Computer Science Dept., University of Illinois at Urbana-Champaign, Dec. 2002.

          Lattner was hired by Apple after getting his Ph.D. in 2005, and not as a student as you claim. Lattner formed the LLVM dev team at Apple and started Clang development.

          Comment


          • #25
            i've missed jump from "95% as fast as gcc" to "dominance"

            Comment


            • #26
              Originally posted by ed31337 View Post
              In the pre-LLVM days, everything compiled and was compatible with gcc. Now I have to deal with two competing compilers, one of which I've never been successfully able to build from source so far (LLVM). I had to make code changes to my apps to accomodate Google's dropping of support for gcc on Android, since LLVM isn't 100% compatible with gcc and inline assembly. And LLVM isn't that great of a compiler -- it doesn't produce faster code in my use of it and compile times aren't any faster than gcc from what I've seen.
              well, building with two compilers make code better, at least when they have same standard support levels. inline asm isn't standard, i didn't use it, so i don't know how to handle it

              Comment


              • #27
                Originally posted by nanonyme View Post
                Gold is a bit better than the default one but that is still not the default which tells you something
                gold is dead. google abandoned it and switched to lldb

                Comment


                • #28
                  I maintain the C and C++ toolchain for a safety-critical embedded OS. I have been asked many times why we don't switch from GCC to LLVM. Other than the fact that it would be an expense with minimal return on investment (a serious consideration in a commercial enterprise), there are some strong technical reasons as well.

                  (1) The floating-point support in LLVM is effectively random. Arbitrary support for floating-point exception states in the emitted code, and variations from architecture to architecture, mean it's unsuitable to safety-critical applications. The use of an LLVM-compiled binary in a safety-critical situation would constitute a hazard. Maybe it would be useful when automatically adjusting the trim wheel of a 737 MAX-8, but not where lives are at stake. The floating-point handling in GCC is well-defined, complete, and consistent.

                  (2) The development methodology used in the LLVM project is anathema to safety-critical process. When hunting down bugfixes I've come across many commits by core maintainers that have no associated bug, no audit trail, no evidence of peer review, and no documentation. A lack of controlled and reviewed development is not acceptable in a tool that generates binaries that lives depend on. WIth GCC I can look at the commits going back to at least the EGCS split (and that is being carried forward to the git repo, maybe, eventually) and the development methodology of requiring OKs from maintainers and posting all changes publicly for review has been in place and enforced for decades.

                  (3) We build our toolchains using Canadian crosses (ie. we might use a Linux x86-64 machine to build a Windows x86-64 compiler that will generate code for an embedded Arm target). The LLVM toolchain is confidently always a cross compiler: you build for the native host a compiler that will build for all target CPUs. Building Canadian crosses of LLVM is a nightmare. WIth GCC it just works and has never once killed my laptop by eating all the memory and swap (unlike LLVM -- geez guys 32 gigabytes should *really* be enough for anyone).

                  When it comes to speed of the binaries produced, There is rarely a big difference between GCC and LLVM: certainly no compelling reason to switch. The time it takes to compile and link can be faster with LLVM, but build times are not usually a big determinant with safety-critical or embedded systems.

                  Anyway, in summary, we haven't switched to the new shiny trendy LLVM because there is no business case to do so and there are strong technical reasons not to do so. Others may have a different experience, this is mine.

                  Comment


                  • #29
                    Originally posted by fkoehler View Post

                    Dear stromcrow,

                    besides what other people have posted about the obvious practical viability of a BSD license almende, I'd respectfully like to point out to you the ethical dimension of your own post.

                    It is fully legal and ethical, if able-minded and consenting adults go into a contract where one party offers source code without any strings attached and the other party decides to use it. An "ethical obligation" determining future behavior does not result from this action neither for the one nor for the other party, as this would be completely adverse to the "no-strings-attached" intention. If any expectation of re-contribution would have been intended, a different license with different wording could have very well been used. A third party (you, in case this isn't obvious) is not entitled to redefine neither intention nor wording of the agreement of aforementioned parties.

                    However, it is highly unethical and even illegal, at least here in Germany, to badmouth a person or company as a contract breaker "ignoring its obligations" (unless that would be very clearly the case and be issued as a statement of fact). So please, take a look in the mirror and try to apply your high ethical standards to yourself (Matthew 7:3-5).

                    Best regards.
                    Ok, first off, I'm not in Germany and I'm not German so your legal arguments are completely inapplicable. I have a fundamental right under US law to state exactly what I stated in the manner I wrote it. I also didn't specify any particular corporation or individual, it was a general statement. I have no idea if what I said is permissible in Germany or the EU, and frankly, I'd be appalled if it wasn't permitted. Secondly, I really think you need to go back and reread your bible because you apparently have a very skewed notion of what's ethical. Third, I do practice what I preach, and if I find bugs in open source software that I use I try to work with the maintainer(s) to fix them regardless of the license. But that's the spirit of the GPL, to give back to the projects you use. Just that in the GPL spirit the publication of any changes to the source files is mandated. I don't have a problem with that. That is not at all too much to ask from people to use the work of someone else's brow. It is not unethical to so require it. If you want actual the Christian ethic: Don't take what isn't yours without paying the asked for compensation. That's part and parcel to the Golden Rule which comes right after your passage: Matthew 7:12. In short, don't steal. And before you state that "ideas aren't property", let me remind you that Christian ethics make no such distinctions as we do in the modern sense. Copyright is a legal fiction of ownership over intangible creative labor. Laborers are ethically right to expect compensation for the fruit of that labor and to name their compensation. That is not only the Christian ethic, but the ethic of many religions not related to Christianity.

                    I applaud those individuals that give back to the projects they use, but I don't for one single second believe it's because a corporation believes it's the right thing to do. Corporations aren't people. Corporations are legal fictions created to make the efforts of commerce easier to manage. The individuals inside that corporation may believe so it's the right thing to do, but corporations are not monoliths. Employees come and go. Corporations can and do take without compensation. Again, I'm not German, so this is me exercising my fundamental right to express my opinion, even if a German apparently seems to think it's somehow unethical to do so. Course, Phoronix has the editorial right not to post this, and that's equally their fundamental right in US law.

                    Comment


                    • #30
                      Originally posted by stormcrow View Post

                      Ok, first off, I'm not in Germany and I'm not German so your legal arguments are completely inapplicable. I have a fundamental right under US law to state exactly what I stated in the manner I wrote it. I also didn't specify any particular corporation or individual, it was a general statement. I have no idea if what I said is permissible in Germany or the EU, and frankly, I'd be appalled if it wasn't permitted. Secondly, I really think you need to go back and reread your bible because you apparently have a very skewed notion of what's ethical. Third, I do practice what I preach, and if I find bugs in open source software that I use I try to work with the maintainer(s) to fix them regardless of the license. But that's the spirit of the GPL, to give back to the projects you use. Just that in the GPL spirit the publication of any changes to the source files is mandated. I don't have a problem with that. That is not at all too much to ask from people to use the work of someone else's brow. It is not unethical to so require it. If you want actual the Christian ethic: Don't take what isn't yours without paying the asked for compensation. That's part and parcel to the Golden Rule which comes right after your passage: Matthew 7:12. In short, don't steal. And before you state that "ideas aren't property", let me remind you that Christian ethics make no such distinctions as we do in the modern sense. Copyright is a legal fiction of ownership over intangible creative labor. Laborers are ethically right to expect compensation for the fruit of that labor and to name their compensation. That is not only the Christian ethic, but the ethic of many religions not related to Christianity.

                      I applaud those individuals that give back to the projects they use, but I don't for one single second believe it's because a corporation believes it's the right thing to do. Corporations aren't people. Corporations are legal fictions created to make the efforts of commerce easier to manage. The individuals inside that corporation may believe so it's the right thing to do, but corporations are not monoliths. Employees come and go. Corporations can and do take without compensation. Again, I'm not German, so this is me exercising my fundamental right to express my opinion, even if a German apparently seems to think it's somehow unethical to do so. Course, Phoronix has the editorial right not to post this, and that's equally their fundamental right in US law.
                      The point I am making is, that using a BSD style license you do NOT expect the party using your software to "give back" and EXPLICITELY document this by using BSD instead of GPL. They may or may not do so, by their own volition. If they do, I applaud them, but if they don't, it is NOT "stealing", how is that so hard to understand? Please explain.

                      And yes, you pretty much directly labeled Apple a thief (ironic, in the case of LLVM). This might or might not be legal in the US, in Germany it surely is not, because slandering others or companies with "alternative facts" is "verboten" and makes you liable to reparations, we are peculiar this way ;-)

                      And the Golden Rule is definitely not about "you shall not steal", it is, in the positive form, about "do unto others, as you want them to do unto you". So feel free to use and support GPL. As a matter of fact, I strongly prefer the GPL and projects under GPL license myself. But other people using BSD is not a crime, it is just them exercising the Golden Rule for themselves ;-)

                      Comment

                      Working...
                      X