tag 标签: LLVM

相关博文
  • 热度 20
    2014-4-15 18:18
    1724 次阅读|
    0 个评论
    About 10 years ago, Apple shifted to its use and hired one of the programmers behind its creation. Now, ARM Ltd has also made the move in its tool chain to the use of the open source—but misnamed—Low Level Virtual Machine compiler (LLVM) and its C-language Clang front end. It will be available first for its Cortex-A50 processor and then later in other embedded focused cores such as the Cortex-M series. A fundamental shift away from proprietary technology. the new ARM Compiler 6 also supports the coming 64bit ARMv8 architecture and will be integrated into future versions of the DS-5 development suite for high- and system-on-chip development. The ARM v8 backend is in open source currently and is now in the process of integration into the DS-5 tool chain. After V8, next to to added will be the V7A and R are cores, probably by no later than the end of 2014. Up to now, said Hobson Bullman, general manager of development solutions, ARM has supported GCC open-source, but LLVM will form the basis of all new compiler technology developments. The compiler will be offered as an open source and free tool within the tool chain along with ARM's proprietary software tool componets. Despite is misleading name, LLVMÿis an extensible compiler framework developed originally at the University of Illinois for testing such advanced code generation techniques such as link-time code generation and just-in-time compilation. Bullman said LLVM's modular framework makes it easier to develop and test new optimisations, leading to better performing code and lower power consumption. Clang is a C/C++ compiler front end based on a modular architecture with well-defined interfaces for applying complimentary tools such as code analysers and code generators. Clang also offers improved diagnostic capabilities, leading to higher quality code and shorter development cycles, he said. One of the original aims of Clang was replacement of the GCC compiler at the core of most embedded tool suites with one that is more integrated development environments (IDEs) friendly and has more extensive multi-threading support. However, up until recently the run time performance of the compiled programs using GCC out performed LLVM by about 10%. But more recent reports indicated that LLVM has caught up and is capable of compiling binaries of about equal performance, except for programs using OpenMP. LLVM project started in 2000 at the University of Illinois at Urbana–Champaign, under the direction of Vikram Adve and Chris Lattner. LLVM was released under the University of Illinois/NCSA Open Source Licence, a non-copyleft licence. In 2005, Apple Inc. hired Lattner and formed a team to work on the LLVM system for various uses within Apple's development systems, including those for its Mac OS X and its iOS for the iPhone, i,Pad and IPod consumer and mobile products. Although LLVM was originally written to be a replacement for the existing C code generator in the GCC stack it now supports compiling of Ada, C, C++, D, Fortran, and Objective-C, using various front ends, some derived from version 4.0.1 and 4.2 of the GNU Compiler Collection (GCC). In addition to Clang, there are a range of front ends to LLVM for a variety of languages including Ada, C++, D, Fortran, Objective-C, and Haskell. In additon to ARM processors, LLVM now supports the instruction sets for a wide variety of mobile and embedded processors, including MBlaze, MIPS, Nvidia PTX, PowerPC, R600, SPARC, x86/x86-64, and XCore. "Clang and LLVM have become essential technologies for high-volume mobile platforms," said Travis Lanier, director of product management, Qualcomm Technologies, Inc. ARM Compiler 6 supports ARM Cortex-A50 processor series and is available as part of the DS-5 Development Studio Ultimate Edition.
  • 热度 17
    2014-4-15 18:16
    2350 次阅读|
    0 个评论
    ARM Ltd has recently made the move in its tool chain to the use of the open source—but misnamed—Low Level Virtual Machine compiler (LLVM) and its C-language Clang front end. This came 10 years after Apple moved to its use—and hired one of the programmers behind its creation. It will be available first for its Cortex-A50 processor and then later in other embedded focused cores such as the Cortex-M series. A fundamental shift away from proprietary technology. the new ARM Compiler 6 also supports the coming 64bit ARMv8 architecture and will be integrated into future versions of the DS-5 development suite for high- and system-on-chip development. The ARM v8 backend is in open source currently and is now in the process of integration into the DS-5 tool chain. After V8, next to to added will be the V7A and R are cores, probably by no later than the end of 2014. Up to now, said Hobson Bullman, general manager of development solutions, ARM has supported GCC open-source, but LLVM will form the basis of all new compiler technology developments. The compiler will be offered as an open source and free tool within the tool chain along with ARM's proprietary software tool componets. Despite is misleading name, LLVMÿis an extensible compiler framework developed originally at the University of Illinois for testing such advanced code generation techniques such as link-time code generation and just-in-time compilation. Bullman said LLVM's modular framework makes it easier to develop and test new optimisations, leading to better performing code and lower power consumption. Clang is a C/C++ compiler front end based on a modular architecture with well-defined interfaces for applying complimentary tools such as code analysers and code generators. Clang also offers improved diagnostic capabilities, leading to higher quality code and shorter development cycles, he said. One of the original aims of Clang was replacement of the GCC compiler at the core of most embedded tool suites with one that is more integrated development environments (IDEs) friendly and has more extensive multi-threading support. However, up until recently the run time performance of the compiled programs using GCC out performed LLVM by about 10%. But more recent reports indicated that LLVM has caught up and is capable of compiling binaries of about equal performance, except for programs using OpenMP. LLVM project started in 2000 at the University of Illinois at Urbana–Champaign, under the direction of Vikram Adve and Chris Lattner. LLVM was released under the University of Illinois/NCSA Open Source Licence, a non-copyleft licence. In 2005, Apple Inc. hired Lattner and formed a team to work on the LLVM system for various uses within Apple's development systems, including those for its Mac OS X and its iOS for the iPhone, i,Pad and IPod consumer and mobile products. Although LLVM was originally written to be a replacement for the existing C code generator in the GCC stack it now supports compiling of Ada, C, C++, D, Fortran, and Objective-C, using various front ends, some derived from version 4.0.1 and 4.2 of the GNU Compiler Collection (GCC). In addition to Clang, there are a range of front ends to LLVM for a variety of languages including Ada, C++, D, Fortran, Objective-C, and Haskell. In additon to ARM processors, LLVM now supports the instruction sets for a wide variety of mobile and embedded processors, including MBlaze, MIPS, Nvidia PTX, PowerPC, R600, SPARC, x86/x86-64, and XCore. "Clang and LLVM have become essential technologies for high-volume mobile platforms," said Travis Lanier, director of product management, Qualcomm Technologies, Inc. ARM Compiler 6 supports ARM Cortex-A50 processor series and is available as part of the DS-5 Development Studio Ultimate Edition.  
  • 热度 19
    2011-6-21 10:55
    2342 次阅读|
    0 个评论
    The Embedded Systems Conferences (ESCs) each year are a chance for me to dig for gold: those nuggets of information about new products and technologies that give me a sense of where things are going. The recent ESC in San Jose was especially rich in such nuggets. If you weren't there, check out the ESC video on You Tube . One of the nuggets I found was Express Logic's "downloadable application module" concept to allow small footprint microkernel RTOSes to match the dynamic download capability of the desktop OSes and monolithic RTOSes used in many high end smartphones. Another significant development is that software engineers at LDRA have been upgrading their code analysis and coverage tools to support requirements traceability from the source code to the object code and back. They have come up with a way of mapping the structure of the original source code to that of the compiled version one-to-one, with no ambiguity. Normally, such mapping is seldom possible and it is one reason embedded developers have such a close personal relationship with their compilers. As it is now, a well understood and reliable compiler is the only way to trace software bugs in the compiled code back to their original location in the uncompiled source code, and it is often fraught with difficulty. The LDRA engineers have promised me an article going into more details on how they did this and what it means. Another nugget: a new trade organization called the Open Networking Foundation (ONF) —formed just a few weeks before the Spring ESC—has the aim of improving networking application design and performance through what it calls software-defined networking. The group's activities are based on the belief that the still amorphous "cloud computing" trend will blur distinctions between computers and networks, making it difficult to develop the network infrastructure. One of the ONF's critical building blocks is the the extension of the OpenFlow research platform to control how packets are forwarded through network switches and routers on the Internet backbone. OpenFlow is a protocol originally developed by university researchers as an architecture -independent framework for developing techniques to improve network performance that were not dependent on any company proprietary hardware or software platform. Finally, a number of people I talked to at ESC mentioned an open source effort called the " Low Level Virtual Machine (LLVM) ." Despite its name, it is actually a compiler infrastructure designed for compile-time, link-time, run-time, and idle-time optimization of programs written in arbitrary programming languages. Most of the interest was among developers of tools and applications for mobile platforms such as the Java/Linux-based Android and Apple's iThings. On those platforms it is mainly used as a language-agnostic compiler front end for web-based applications based on Objective-C, Fortran, Ada, Haskell, Java bytecode, Python, Ruby, ActionScript, and others. LLVM may have implications for real-time deterministic embedded software development because it was originally developed as an aggressive C/C++ optimizer for X86, ARM, PowerPC, Sparc, Alpha, and several other targets. It was started in 2000 at the University of Illinois at Burbana-Champaign, under the direction of Vikram Adve and Chris Lattner. In 2005, Apple Inc. hired Lattner and formed a team to work on the LLVM system for various uses within Apple's development systems. It is now an integral part of Apple's latest development tools for the Macintosh OS-X and the iOS platform that serves as the software underpinning of all of Apple's iPad, iPhone, and iPad products. I am now working my way through some of the technical material available on OpenFlow.org as well as a number of sites devoted to the low level virtual machine concept, including the LLVM Compiler Infrastructure Project web site at the University of Illinois and Chris Lattner's personal web page . I have a suspicion that LLVM will have a profound impact on connected embedded designs. I will continue researching this and other nuggets uncovered at the Spring ESC. In the meantime, let me know your thoughts in the form of emails and blogs.