if (I != ForwardReferences.end() && I->first == KeyValue)
return I->second; // We have already created this placeholder
- Value *Val = new ValPHolder(getType(type), oNum);
+ Value *Val = new Argument(getType(type));
ForwardReferences.insert(I, std::make_pair(KeyValue, Val));
return Val;
}
unsigned getID() { return ID; }
};
-struct InstPlaceHolderHelper : public Instruction {
- InstPlaceHolderHelper(const Type *Ty) : Instruction(Ty, UserOp1, "") {}
- virtual const char *getOpcodeName() const { return "placeholder"; }
-
- virtual Instruction *clone() const { abort(); return 0; }
-};
-
struct ConstantPlaceHolderHelper : public Constant {
ConstantPlaceHolderHelper(const Type *Ty)
: Constant(Ty) {}
virtual bool isNullValue() const { return false; }
};
-typedef PlaceholderDef<InstPlaceHolderHelper> ValPHolder;
typedef PlaceholderDef<ConstantPlaceHolderHelper> ConstPHolder;
// Some common errors we find
static const std::string Error_inputdata = "input_data(): error reading.";
static const std::string Error_DestSlot = "No destination slot found.";
-static inline unsigned getValueIDNumberFromPlaceHolder(Value *Val) {
- if (isa<Constant>(Val))
- return ((ConstPHolder*)Val)->getID();
- return ((ValPHolder*)Val)->getID();
-}
-
static inline void readBlock(const unsigned char *&Buf,
const unsigned char *EndBuf,
unsigned &Type, unsigned &Size) {