Other comments:<div><br></div><div>Why is this not behind an extension warning? I don't think we want to blindly accept this code until the parsing and sema logic has settled significantly.</div><div><br></div><div><br>
</div><div>Also, I think the CodeGen part really isn't ready to be committed yet:</div><div><br></div><div><div>+</div><div>+void CodeGenFunction::EmitMSAsmStmt(const MSAsmStmt &S) {</div><div>+ // Analyze the asm string to decompose it into its pieces. We know that Sema</div>
<div>+ // has already done this, so it is guaranteed to be successful.</div><div>+</div><div>+ // Assemble the pieces into the final asm string.</div><div>+ std::string AsmString = S.getAsmString()->getString().str();</div>
<div>+</div><div>+ // Get all the output and input constraints together.</div><div>+</div><div>+ std::vector<llvm::Value*> Args;</div><div>+ std::vector<llvm::Type *> ArgTypes;</div><div>+ std::string Constraints;</div>
<div>+</div><div>+ // Keep track of inout constraints.</div><div>+ </div><div>+ // Append the "input" part of inout constraints last.</div><div>+</div><div>+ // Clobbers</div><div><br></div><div>This isn't even code yet. I think this shouldn't be committed until you actually have some working implementation, or it should be a simple stub function that immediately errors saying that MS-style asm codegen isn't yet supported.</div>
</div><div><br></div><div><br></div><div>Anyways, I'm excited by the work, and I'd really like to see the overall design in more detail. One thing that would be good for this is perhaps a RFC email with a sketch of the design, and then committing that as an in-progress language extension in Clang's documentation.</div>