LLVM 20.0.0git
Functions
AVRShiftExpand.cpp File Reference

Expand non-8-bit and non-16-bit shift instructions (shl, lshr, ashr) to inline loops, just like avr-gcc. More...

#include "AVR.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/InstIterator.h"

Go to the source code of this file.

Functions

 INITIALIZE_PASS (AVRShiftExpand, "avr-shift-expand", "AVR Shift Expansion", false, false) Pass *llvm
 

Detailed Description

Expand non-8-bit and non-16-bit shift instructions (shl, lshr, ashr) to inline loops, just like avr-gcc.

This must be done in IR because otherwise the type legalizer will turn 32-bit shifts into (non-existing) library calls such as __ashlsi3.

Definition in file AVRShiftExpand.cpp.

Function Documentation

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( AVRShiftExpand  ,
"avr-shift-expand"  ,
"AVR Shift Expansion"  ,
false  ,
false   
)

Definition at line 43 of file AVRShiftExpand.cpp.