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 {