wiki:ParabixLLVM

The Parabix with LLVM Project

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

Subprojects

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>.

ShuffleVector

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.

Issues

The I2Result demo shows a problem with i2 results.

Last modified 23 months ago Last modified on Oct 9, 2015, 10:53:28 AM