The LLVM Project Blog

LLVM Project News and Details from the Trenches

LLVM Weekly - #7, Feb 17th 2014

Welcome to the seventh issue of LLVM Weekly, a weekly newsletter (published every Monday) covering developments in LLVM, Clang, and related projects. LLVM Weekly is brought to you by Alex Bradbury. Subscribe to future issues at and pass it on to anyone else you think may be interested. Please send any tips or feedback to, or @llvmweekly or @asbradbury on Twitter.

As always, apologies if I didn't pick up your favourite mailing list discussion or commits. Do drop me a line if you think I'm missing something interesting. There haven't been that many external news stories or blog posts (that I've found) in the last week, but it's been a particularly busy week on the mailing lists with a whole bunch of interesting discussions or RFCs.

The canonical home for this issue can be found here at

News and articles from around the web

The ELLCC Embedded Compiler Collection now has precompiled builds available for ARM, i386, Mips, PowerPC and x86-64. Handily, these are all statically linked. The aim of ELLCC is to provide an easy to use multi-target cross compilation environment for embedded systems, and is of course based on LLVM and clang.

The next Waterloo Region LLVM Social has been announced for Feb 20th.

The next Paris LLVM Social will take place on Feb 24th, hosted by Mozilla.

On the mailing lists

LLVM commits

  • AsmPrinter::EmitInlineAsm() will no longer use the EmitRawText() call for targets with mature MC (MachineCode) support. The MCASMInfo::UseIntegratedAS field was added. When true, the integrated assembler will parse inline assembly even when emitting assembly output. r201237.

  • The RTDyld API learned to precompute the amount of memory required for all sections in a module, and reserveAllocationSpace to reserve the given amount of space. r201259.

  • The LTO API gained lto_module_create_from_memory_with_path, which is mainly useful for emitting warning messages from the linker. r201114.

  • ScalarEvolution will now analyze the trip count of loops where there is a switch guarding the exit. r201159.

  • The notes on Phabricator now include a suggestion to provide a link to the Differential revision (the code review) on commits that have been reviewed in this way. Please do this! r201160.

  • The AArch64 backend now recognises Cortex-A53 and Cortex-A57. r201305.

  • The ARM integrated assembler gained partial support for the .arch_extension directive. r201471.

Clang commits

  • There have been yet more updates to Clang's Microsoft ABI compatibility. Clang now understands Microsoft's pointers_to_members pragma. r201105 as well as the vtordisp pragma r201274. In other MS ABI developments, the -vm{b,g,s,m,v} are now supported too. r201175.

  • The command line option -fstack-protector-strong was added. r201120. See also r200601 for info on the sspstrong function attribute.

  • Frontend support for the OpenMP if clause was committed. r201297.

  • You can use the --rtlib=compiler-rt flag to attempt to link against compiler-rt rather than libgcc. r201307.

  • The -Wignored-pragmas diagnostic was added, that will warn in any case where a pragma would have a side effect but is ignored. r201102.

  • The name of the checker producing each diagnostic message is now available through getCheckName(). This can be used to enable/disable a specific checker. r201186.

  • Clang now understands the -fbuild-session-timestamp= and -fmodules-validate-once-per-build-session flags which allows you to make it verify source files for a module only once during a build. r201224, r201225.

Other project commits

  • The sanitizer projects in compiler-rt gained the beginnings for a deadlock detector. r201302, r201407..

  • The original compiler-rt functions (i.e. those that act as a libgcc replacement) now live in the lib/builtins directory. r201393.

  • In lldb, the user can now specify trap-handler-names, a list of functions which should be treated as trap handlers. r201386.