O'Reilly logo

LLVM Cookbook by Suyog Sarda, Mayur Pandey

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Eliminating common subexpression from machine code

The aim of the CSE algorithm is to eliminate common subexpressions to make machine code compact and remove unnecessary, duplicate code. Let's look at the code in the LLVM trunk to understand how it is implemented. The detailed code is in the lib/CodeGen/MachineCSE.cpp file.

How to do it…

  1. The MachineCSE class runs on a machine function, and hence it should inherit the MachineFunctionPass class. It has various members, such as TargetInstructionInfo, which is used to get information about the target instruction (used in performing CSE); TargetRegisterInfo, which is used to get information about the target register (whether it belongs to a reserved register class, or to more such similar classes; and ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required