Skip to content

Tag: LLVM

Compilers 106 – Optimizer

An optimizer “improves” the IR, but that can mean a lot of different things. Improve could mean “run faster” or “use less memory”. Or perhaps you want to optimize for memory access time because CPUs are so fast it is sometimes more efficient to repeatedly calculate something rather than calculate it once, store it and access it later.

This is the sixth post in our Compiler series. Previous posts:

Comments closed

Avoiding False-Positive Virus Detection in Windows Apps

Viruses continue to be a big problem on Windows. As a result, anti-virus software can be a bit over-zealous about detecting what it believes to be apps that have viruses embedded within them. We have had reports over the years that apps made with Xojo are sometimes falsely identified as being infected with a virus. This sometimes occurs because the 32-bit Xojo compiler puts executable code in a location where the anti-virus software doesn’t expect to find it. We’ve seen this occur even when users are debugging apps from the IDE. Fortunately in that case, there’s a fairly easy solution.

Comments closed

Compilers 105 – Back End Overview

Once the front end has done its work its time for the back end components to take over.

This is the fifth in our compiler series and the first on the back end. We covered the parts of the compiler that are called the front end in these posts:

Comments closed

Xojo and Community Growth in 2017

2017 has been a good year for Xojo! We hit some bumps but we’re ending the year with the much-awaited Xojo 64-bit IDE released in Xojo 2017r3.
Though we didn’t have a XDC in 2017, we’re gearing up for XDC 2018 in Denver in April. This is the longest between conferences in many years and we’re seeing an increase in early registrations. If you are planning on attending, please register soon. We have sold out before!
Comments closed

Compilers 102 – Parser

At XDC 2016 there was a lot of interest in Joe Ranieri’s Compiler session where he talked about compilers and LLVM. After talking with Joe we decided to put together a series of blog posts on compilers. These are at a high-level. None of these posts are going to teach you how to write a compiler. The goal of these posts is for you to have a basic understanding of the components of a compiler and how they all work together to create a native app.

This is the second post in our ongoing series on compilers. I recommend that you first read Compilers 101 – Overview and Lexer before continuing.

Comments closed

Compilers 101 – Overview and Lexer

At XDC 2016 there was a lot of interest in Joe Ranieri’s Compiler session where he talked about compilers and LLVM. I’ve already summarized a bit about LLVM in an earlier post, but after talking with Joe we decided to put together a series of blog posts on compilers.

These will all be at a high-level. None of these posts are going to teach you how to write a compiler. The goal of these posts is for you to have a basic understanding of the components of a compiler and how they all work together to create a native app.

Comments closed

What it means for your Xojo projects if Mac goes ARM

I’ve speculated for some time now that Apple might decide to start putting their own ARM-based processors in Mac desktop and laptop computers. Apparently, I’m not alone in thinking this. It makes a lot of sense. Apple’s big advantage is being in control of all of the important aspects of their product lines and the processor is both figuratively and physically at the center of their products.

Comments closed