#define LLVM_INLINEASM_H
#include "llvm/Value.h"
+#include "llvm/System/IncludeFile.h"
#include <vector>
namespace llvm {
InlineAsm(const FunctionType *Ty, const std::string &AsmString,
const std::string &Constraints, bool hasSideEffects);
+ virtual ~InlineAsm();
public:
/// InlineAsm::get - Return the the specified uniqued inline asm string.
const std::string &getConstraintString() const { return Constraints; }
virtual void print(std::ostream &O) const { print(O, 0); }
+ void print(std::ostream *O) const { if (O) print(*O); }
void print(std::ostream &OS, AssemblyAnnotationWriter *AAW) const;
/// Verify - This static method can be used by the parser to check to see if
/// there is an input constraint that is required to match it (e.g. "0").
bool hasMatchingInput;
+ /// isCommutative - This is set to true for a constraint that is commutative
+ /// with the next operand.
+ bool isCommutative;
+
/// Code - The constraint code, either the register name (in braces) or the
/// constraint letter/number.
std::vector<std::string> Codes;
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const InlineAsm *) { return true; }
static inline bool classof(const Value *V) {
- return V->getValueType() == Value::InlineAsmVal;
+ return V->getValueID() == Value::InlineAsmVal;
}
};
} // End llvm namespace
+// Make sure the InlineAsm.cpp file is linked when this one is #included.
+FORCE_DEFINING_FILE_TO_BE_LINKED(InlineAsm)
+
#endif