Mercurial > projects > ldc
comparison gen/tollvm.cpp @ 611:83ca663ecc20
Backed out changeset 1b62222581fb
Do not use i8 for bool. Instead rely on the target to store i1 as i8.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Sun, 21 Sep 2008 14:45:41 +0200 |
parents | 1b62222581fb |
children | c9aa338280ed |
comparison
equal
deleted
inserted
replaced
610:1b62222581fb | 611:83ca663ecc20 |
---|---|
75 case Tint64: | 75 case Tint64: |
76 case Tuns64: | 76 case Tuns64: |
77 return (const LLType*)LLType::Int64Ty; | 77 return (const LLType*)LLType::Int64Ty; |
78 | 78 |
79 case Tbool: | 79 case Tbool: |
80 return (const LLType*)LLType::Int8Ty; | 80 return (const LLType*)llvm::ConstantInt::getTrue()->getType(); |
81 | 81 |
82 // floats | 82 // floats |
83 case Tfloat32: | 83 case Tfloat32: |
84 case Timaginary32: | 84 case Timaginary32: |
85 return LLType::FloatTy; | 85 return LLType::FloatTy; |
460 { | 460 { |
461 llvm::Function* fn = GET_INTRINSIC_DECL(memory_barrier); | 461 llvm::Function* fn = GET_INTRINSIC_DECL(memory_barrier); |
462 assert(fn != NULL); | 462 assert(fn != NULL); |
463 | 463 |
464 LLSmallVector<LLValue*, 5> llargs; | 464 LLSmallVector<LLValue*, 5> llargs; |
465 llargs.push_back(DtoConstI1(ll)); | 465 llargs.push_back(DtoConstBool(ll)); |
466 llargs.push_back(DtoConstI1(ls)); | 466 llargs.push_back(DtoConstBool(ls)); |
467 llargs.push_back(DtoConstI1(sl)); | 467 llargs.push_back(DtoConstBool(sl)); |
468 llargs.push_back(DtoConstI1(ss)); | 468 llargs.push_back(DtoConstBool(ss)); |
469 llargs.push_back(DtoConstI1(device)); | 469 llargs.push_back(DtoConstBool(device)); |
470 | 470 |
471 llvm::CallInst::Create(fn, llargs.begin(), llargs.end(), "", gIR->scopebb()); | 471 llvm::CallInst::Create(fn, llargs.begin(), llargs.end(), "", gIR->scopebb()); |
472 } | 472 } |
473 | 473 |
474 ////////////////////////////////////////////////////////////////////////////////////////// | 474 ////////////////////////////////////////////////////////////////////////////////////////// |
484 llvm::ConstantInt* DtoConstInt(int i) | 484 llvm::ConstantInt* DtoConstInt(int i) |
485 { | 485 { |
486 return llvm::ConstantInt::get(LLType::Int32Ty, i, true); | 486 return llvm::ConstantInt::get(LLType::Int32Ty, i, true); |
487 } | 487 } |
488 LLConstant* DtoConstBool(bool b) | 488 LLConstant* DtoConstBool(bool b) |
489 { | |
490 return llvm::ConstantInt::get(LLType::Int8Ty, b, false); | |
491 } | |
492 LLConstant* DtoConstI1(bool b) | |
493 { | 489 { |
494 return llvm::ConstantInt::get(LLType::Int1Ty, b, false); | 490 return llvm::ConstantInt::get(LLType::Int1Ty, b, false); |
495 } | 491 } |
496 llvm::ConstantInt* DtoConstUbyte(unsigned char i) | 492 llvm::ConstantInt* DtoConstUbyte(unsigned char i) |
497 { | 493 { |