C++Now - trip report

As I’ve mentioned previously, I’m currently on a break between jobs. With my copious spare time I decided – rather late in the day – to head to C++Now, a C++ Conference held yearly in Aspen, Colorado. Several C++ folks had recommended that I come to it: it’s a smaller and more intimate conference than CppCon.

I was not disappointed! Firstly, Aspen is a beautiful place to hold a conference, although the thin air at 9,000 feet up takes a bit of getting used to.

The Aspen Center of Physics
The conference rooms used for C++Now nestle in a beautiful meadow.

Filed under: Blog Coding
Posted at 22:30:00 BST on 14th May 2018.

March update

Compiler Explorer now has a logo!

Compiler Explorer

If you like it and want to support Compiler Explorer, I set up an online shop where you can create your own T shirts, bags, mugs and so on! By doing so you’re supporting Compiler Explorer’s development, as I get a small commission for any sales. Of course, it’s all open source, so you can make your own with the logo too!

Filed under: Coding
Posted at 23:50:00 GMT on 3rd March 2018.

Some YouTube videos

Almost on a whim, I’ve started re-recording some presentations I’ve done at work on a variety of programming topics, and have uploaded them to YouTube.

I enjoy giving these presentations – you really have to know your topic to be able to effecitvely talk about it in front of people! I plan on recording more, and indeed creating new content just for YouTube.

So far I’ve uploaded:

Filed under: Coding
Posted at 19:00:00 GMT on 4th February 2018.

CppCon 2017 Trip Report

Until last week I had never been to a C++ conference before. I’m rather glad to say that I’ve now experienced the wonder of having a firehose of C++ knowledge plugged into my brain and turned on.

Most of the best times at the conference were in between talks, where random meetings in the hallways over coffee would yield fascinating discussions. I was flattered to have a fair number of people spot my name badge and come up and thank me for Compiler Explorer – a very surreal experience. I got a tiny taste of what it must be to be “famous”! I also got a lot of advice and ideas on how to improve the site, and once the dust settles a little I look forward to getting stuck into improvements, like more Microsoft compilers (and a better compilation experience for those using it), and execution support.

While the hallway chance encounters (and lunches and dinners) yielded a lot of great conversations, the talks were also full of information. Below is a small taste of some of the talks that left an impression with me:

Keynotes

Filed under: Coding
Posted at 21:00:00 BST on 2nd October 2017.

Compiler Explorer is now on Patreon!

Today I launched Compiler Explorer on Patreon - a site where one can pledge ongoing donations to content creators.

It was tougher decision than I expected. I spend a fair amount of cash and an awful lot of time on Compiler Explorer, but I’ve always seen it as a hobby. This now puts me a little closer to seeing it as a “job” of sorts. I hope this works out!

If you enjoy using Compiler Explorer and want to help out, please visit the new page on Patreon.

Filed under: Coding
Posted at 04:00:00 GMT on 23rd January 2017.

Compiler Explorer's embedded view

Today I updated Compiler Explorer to support better sharing, specifically to allow embedding a Compiler Explorer view into another site, useful for blog posts that wish to demonstrate how compilers generate code, or how language constructs actually become assembly.

For example, maybe you want to show off how well the compiler optimizes multiplying by a constant:

Filed under: Coding
Posted at 16:25:00 GMT on 2nd November 2016.

How it works: Compiler Explorer

I’ve been running Compiler Explorer for over four years now, and a lot has changed in that time. In addition to C++, it now supports Go, Rust and D. It scales up and down to support demand. It has many different compilers, many self-built.

I’ve been asked by a couple of people recently how everything works, and so I thought I’d put some notes down here, in case it should help anyone else considering something similar.

In brief: Compiler Explorer runs on some Amazon EC2 instances, behind a load-balancer. DNS routes to the load balancer, which then picks one of the instances to actually send the request to. In fairness, most of the time I only have one instance running, but during rolling updates (and high load) I can have two or so.

Filed under: Coding
Posted at 16:00:00 BST on 4th September 2016.

Inside the Ivy Bridge and Haswell BTB

After last time’s analysis of the Arrendale BTB, I thought I should take a look at more contemporary CPUs. At work I have access to Haswell and Ivy Bridge machines. Before I got too far into interpretation, I spent a while making it as easy as possible to remotely run tests, and graph. The code has improved a little in this regard. For completeness, this article was written with the code at SHA hash ab8cbd1d.

The Ivy Bridge I tested was an E5 2667v2 and the Haswell was an E5 2697v3.

Total size

First up let’s try and see how many branches we can fit in the BTB:

Filed under: Coding Microarchitecture
Posted at 03:00:00 GMT on 23rd February 2016.

About Matt Godbolt

Matt Godbolt is a C++ developer working in Chicago in the finance industry.