diff options
Diffstat (limited to 'llvm/lib/Target/CBackend')
| -rw-r--r-- | llvm/lib/Target/CBackend/Writer.cpp | 12 | 
1 files changed, 12 insertions, 0 deletions
| diff --git a/llvm/lib/Target/CBackend/Writer.cpp b/llvm/lib/Target/CBackend/Writer.cpp index 396cc694da6..e78eef66831 100644 --- a/llvm/lib/Target/CBackend/Writer.cpp +++ b/llvm/lib/Target/CBackend/Writer.cpp @@ -140,6 +140,7 @@ namespace {      void visitBinaryOperator(Instruction &I);      void visitCastInst (CastInst &I); +    void visitSelectInst(SelectInst &I);      void visitCallInst (CallInst &I);      void visitCallSite (CallSite CS);      void visitShiftInst(ShiftInst &I) { visitBinaryOperator(I); } @@ -1185,6 +1186,17 @@ void CWriter::visitCastInst(CastInst &I) {    writeOperand(I.getOperand(0));  } +void CWriter::visitSelectInst(SelectInst &I) { +  Out << "(("; +  writeOperand(I.getCondition()); +  Out << ") ? ("; +  writeOperand(I.getTrueValue()); +  Out << ") : ("; +  writeOperand(I.getFalseValue()); +  Out << "))";     +} + +  void CWriter::lowerIntrinsics(Module &M) {    for (Module::iterator F = M.begin(), E = M.end(); F != E; ++F)      for (Function::iterator BB = F->begin(), E = F->end(); BB != E; ++BB) | 

