[ms-inline asm] Remove old cruft now that MS-style asms their own code path.

llvm-svn: 162210
This commit is contained in:
Chad Rosier 2012-08-20 17:11:53 +00:00
parent 0a9ea7c70d
commit d4e55b8e35
8 changed files with 15 additions and 30 deletions

View File

@ -1385,10 +1385,10 @@ class AsmStmt : public Stmt {
public:
AsmStmt(ASTContext &C, SourceLocation asmloc, bool issimple, bool isvolatile,
bool msasm, unsigned numoutputs, unsigned numinputs,
IdentifierInfo **names, StringLiteral **constraints,
Expr **exprs, StringLiteral *asmstr, unsigned numclobbers,
StringLiteral **clobbers, SourceLocation rparenloc);
unsigned numoutputs, unsigned numinputs, IdentifierInfo **names,
StringLiteral **constraints, Expr **exprs, StringLiteral *asmstr,
unsigned numclobbers, StringLiteral **clobbers,
SourceLocation rparenloc);
/// \brief Build an empty inline-assembly statement.
explicit AsmStmt(EmptyShell Empty) : Stmt(AsmStmtClass, Empty),
@ -1403,8 +1403,6 @@ public:
void setVolatile(bool V) { IsVolatile = V; }
bool isSimple() const { return IsSimple; }
void setSimple(bool V) { IsSimple = V; }
bool isMSAsm() const { return MSAsm; }
void setMSAsm(bool V) { MSAsm = V; }
//===--- Asm String Analysis ---===//

View File

@ -2544,8 +2544,7 @@ public:
MultiExprArg Exprs,
Expr *AsmString,
MultiExprArg Clobbers,
SourceLocation RParenLoc,
bool MSAsm = false);
SourceLocation RParenLoc);
StmtResult ActOnMSAsmStmt(SourceLocation AsmLoc,
SourceLocation LBraceLoc,

View File

@ -559,14 +559,13 @@ QualType CXXCatchStmt::getCaughtType() const {
//===----------------------------------------------------------------------===//
AsmStmt::AsmStmt(ASTContext &C, SourceLocation asmloc, bool issimple,
bool isvolatile, bool msasm,
unsigned numoutputs, unsigned numinputs,
bool isvolatile, unsigned numoutputs, unsigned numinputs,
IdentifierInfo **names, StringLiteral **constraints,
Expr **exprs, StringLiteral *asmstr, unsigned numclobbers,
StringLiteral **clobbers, SourceLocation rparenloc)
: Stmt(AsmStmtClass), AsmLoc(asmloc), RParenLoc(rparenloc), AsmStr(asmstr)
, IsSimple(issimple), IsVolatile(isvolatile), MSAsm(msasm)
, NumOutputs(numoutputs), NumInputs(numinputs), NumClobbers(numclobbers) {
, IsSimple(issimple), IsVolatile(isvolatile), NumOutputs(numoutputs)
, NumInputs(numinputs), NumClobbers(numclobbers) {
unsigned NumExprs = NumOutputs + NumInputs;

View File

@ -182,13 +182,6 @@ static ControlFlowKind CheckFallThrough(AnalysisDeclContext &AC) {
HasFakeEdge = true;
continue;
}
if (const AsmStmt *AS = dyn_cast<AsmStmt>(S)) {
if (AS->isMSAsm()) {
HasFakeEdge = true;
HasLiveReturn = true;
continue;
}
}
if (isa<MSAsmStmt>(S)) {
// TODO: Verify this is correct.
HasFakeEdge = true;

View File

@ -94,7 +94,7 @@ StmtResult Sema::ActOnAsmStmt(SourceLocation AsmLoc, bool IsSimple,
unsigned NumInputs, IdentifierInfo **Names,
MultiExprArg constraints, MultiExprArg exprs,
Expr *asmString, MultiExprArg clobbers,
SourceLocation RParenLoc, bool MSAsm) {
SourceLocation RParenLoc) {
unsigned NumClobbers = clobbers.size();
StringLiteral **Constraints =
reinterpret_cast<StringLiteral**>(constraints.get());
@ -199,9 +199,9 @@ StmtResult Sema::ActOnAsmStmt(SourceLocation AsmLoc, bool IsSimple,
}
AsmStmt *NS =
new (Context) AsmStmt(Context, AsmLoc, IsSimple, IsVolatile, MSAsm,
NumOutputs, NumInputs, Names, Constraints, Exprs,
AsmString, NumClobbers, Clobbers, RParenLoc);
new (Context) AsmStmt(Context, AsmLoc, IsSimple, IsVolatile, NumOutputs,
NumInputs, Names, Constraints, Exprs, AsmString,
NumClobbers, Clobbers, RParenLoc);
// Validate the asm string, ensuring it makes sense given the operands we
// have.
SmallVector<AsmStmt::AsmStringPiece, 8> Pieces;

View File

@ -1172,12 +1172,11 @@ public:
MultiExprArg Exprs,
Expr *AsmString,
MultiExprArg Clobbers,
SourceLocation RParenLoc,
bool MSAsm) {
SourceLocation RParenLoc) {
return getSema().ActOnAsmStmt(AsmLoc, IsSimple, IsVolatile, NumOutputs,
NumInputs, Names, move(Constraints),
Exprs, AsmString, Clobbers,
RParenLoc, MSAsm);
RParenLoc);
}
/// \brief Build a new MS style inline asm statement.
@ -5600,8 +5599,7 @@ TreeTransform<Derived>::TransformAsmStmt(AsmStmt *S) {
move_arg(Exprs),
AsmString.get(),
move_arg(Clobbers),
S->getRParenLoc(),
S->isMSAsm());
S->getRParenLoc());
}
template<typename Derived>

View File

@ -297,7 +297,6 @@ void ASTStmtReader::VisitAsmStmt(AsmStmt *S) {
S->setRParenLoc(ReadSourceLocation(Record, Idx));
S->setVolatile(Record[Idx++]);
S->setSimple(Record[Idx++]);
S->setMSAsm(Record[Idx++]);
S->setAsmString(cast_or_null<StringLiteral>(Reader.ReadSubStmt()));

View File

@ -227,7 +227,6 @@ void ASTStmtWriter::VisitAsmStmt(AsmStmt *S) {
Writer.AddSourceLocation(S->getRParenLoc(), Record);
Record.push_back(S->isVolatile());
Record.push_back(S->isSimple());
Record.push_back(S->isMSAsm());
Writer.AddStmt(S->getAsmString());
// Outputs