40 const char *getPassName()
const override {
41 return "Remove sign extends";
56 "Remove Sign and Zero Extends for Args",
false,
false)
64 if (!isa<PointerType>(Arg->
getType())) {
66 if (isa<SExtInst>(*UI)) {
90 return new HexagonRemoveExtendArgs();
iplist< Instruction >::iterator eraseFromParent()
eraseFromParent - This method unlinks 'this' from the containing basic block and deletes it...
AnalysisUsage & addPreserved()
Add the specified Pass class to the set of analyses preserved by this pass.
static PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
LLVM Argument representation.
Sign extended before/after call.
virtual void getAnalysisUsage(AnalysisUsage &) const
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
This class represents a sign extension of integer types.
MachineFunctionAnalysis - This class is a Pass that manages a MachineFunction object.
AnalysisUsage & addRequired()
void replaceAllUsesWith(Value *V)
Change all uses of this to point to a new Value.
INITIALIZE_PASS(HexagonRemoveExtendArgs,"reargs","Remove Sign and Zero Extends for Args", false, false) bool HexagonRemoveExtendArgs
void insertBefore(Instruction *InsertPos)
Insert an unlinked instruction into a basic block immediately before the specified instruction...
Represent the analysis usage information of a pass.
FunctionPass class - This class is used to implement most global optimizations.
Type * getType() const
All values are typed, get the type of this value.
FunctionPass * createHexagonRemoveExtendArgs(const HexagonTargetMachine &TM)
void initializeHexagonRemoveExtendArgsPass(PassRegistry &)
static EVT getEVT(Type *Ty, bool HandleUnknown=false)
getEVT - Return the value type corresponding to the specified type.
user_iterator user_begin()
PassRegistry - This class manages the registration and intitialization of the pass subsystem as appli...