OLD | NEW |
1 //===-- llvm/InlineAsm.h - Class to represent inline asm strings-*- C++ -*-===// | 1 //===-- llvm/InlineAsm.h - Class to represent inline asm strings-*- C++ -*-===// |
2 // | 2 // |
3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // | 9 // |
10 // This class represents the inline asm strings, which are Value*'s that are | 10 // This class represents the inline asm strings, which are Value*'s that are |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 | 81 |
82 const std::string &getAsmString() const { return AsmString; } | 82 const std::string &getAsmString() const { return AsmString; } |
83 const std::string &getConstraintString() const { return Constraints; } | 83 const std::string &getConstraintString() const { return Constraints; } |
84 | 84 |
85 /// Verify - This static method can be used by the parser to check to see if | 85 /// Verify - This static method can be used by the parser to check to see if |
86 /// the specified constraint string is legal for the type. This returns true | 86 /// the specified constraint string is legal for the type. This returns true |
87 /// if legal, false if not. | 87 /// if legal, false if not. |
88 /// | 88 /// |
89 static bool Verify(FunctionType *Ty, StringRef Constraints); | 89 static bool Verify(FunctionType *Ty, StringRef Constraints); |
90 | 90 |
| 91 // @LOCALMOD-START |
| 92 /// isAsmMemory - Returns true if the Instruction corresponds to |
| 93 /// ``asm("":::"memory")``, which is often used as a compiler barrier. |
| 94 /// |
| 95 bool isAsmMemory() const; |
| 96 // @LOCALMOD-END |
| 97 |
91 // Constraint String Parsing | 98 // Constraint String Parsing |
92 enum ConstraintPrefix { | 99 enum ConstraintPrefix { |
93 isInput, // 'x' | 100 isInput, // 'x' |
94 isOutput, // '=x' | 101 isOutput, // '=x' |
95 isClobber // '~x' | 102 isClobber // '~x' |
96 }; | 103 }; |
97 | 104 |
98 typedef std::vector<std::string> ConstraintCodeVector; | 105 typedef std::vector<std::string> ConstraintCodeVector; |
99 | 106 |
100 struct SubConstraintInfo { | 107 struct SubConstraintInfo { |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
293 return false; | 300 return false; |
294 RC = High - 1; | 301 RC = High - 1; |
295 return true; | 302 return true; |
296 } | 303 } |
297 | 304 |
298 }; | 305 }; |
299 | 306 |
300 } // End llvm namespace | 307 } // End llvm namespace |
301 | 308 |
302 #endif | 309 #endif |
OLD | NEW |