Version 11 (modified by cameron, 5 years ago) (diff)


The Parabix with LLVM Project

This project investigates the use of LLVM as a back end for Parabix technologies.

Working with LLVM Tools

Some demos of LLVM tools in action.


Architecture Independent IDISA Libraries

Meng Lin is looking at creating architecture independent IDISA libraries, see: source:trunk/libgen/llvm_header

Is it possible to have LLVM directly support all power-of-2 IDISA types and operations directly in the code generation system?

Complete Power-of-2 Integer/Vector Support

The CompleteInteger project involves systematic support for integers and vectors of integers in all power-of-2 configurations up to 256 bits.

In general, this project seeks to "fill in the gaps" of LLVM support, specifically as follows.

  1. Add first class support for short integer types i1, i2, i4.
  2. Add first class support for LongInteger types i128, i256.
  3. Add first class support for vectors of integers of i1, i2 and i4 types up to <256 x i1>, <128 x i2>, <64 x i4>.
  4. Add first class support for vectors of long integers <2 x i128>.


The ShuffleVector project investigates systematic support of the LLVM shufflevector operation, and optimized support in the case of various patterns for shuffle masks as compile-time constants.

SSE2 Hoisting

The SSE2 Hoisting project investigates the raising of SSE2 intrinsic operations into generic LLVM IR operations, thereby creating the possibility of executing SSE2 code on different architectures.

LLVM Reading

Information on Extending LLVM to add new intrinsics, SelectionDAG nodes, instructions and types outlines the steps necessary to start working with the compiler on new facilities.

The LLVM Target Independent Code Generator is the key document describing the inner workings of code generation for various platforms.


The I2Result demo shows a problem with i2 results.