Skip to main content

Literales

Enteros#

Obtener un entero de 1-bit (booleano)#

llvm::ConstantInt* integerConstant = llvm::ConstantInt::get(builder.getInt1Ty(), value, isSigned);

Obtener un entero de 8-bit#

llvm::ConstantInt* integerConstant = llvm::ConstantInt::get(builder.getInt8Ty(), value, isSigned);

Obtener un entero de 16-bit#

llvm::ConstantInt* integerConstant = llvm::ConstantInt::get(builder.getInt16Ty(), value, isSigned);

Obtener un entero de 32-bit#

llvm::ConstantInt* integerConstant = llvm::ConstantInt::get(builder.getInt32Ty(), value, isSigned);

Obtener un entero de 64-bit#

llvm::ConstantInt* integerConstant = llvm::ConstantInt::get(builder.getInt64Ty(), value, isSigned);

Flotantes#

Obtener un flotante de 32-bit#

llvm::ConstantFP* floatingConstant = llvm::ConstantFP::get(builder.getFloatTy(), value);

Obtener un flotante de 64-bit#

llvm::ConstantFP* floatingConstant = llvm::ConstantFP::get(builder.getDoubleTy(), value);

Arrays#

Array de enteros de 8-bit#

std::vector<uint8_t> data;llvm::Constant* arrayConstant = llvm::ConstantDataArray::get(context, data);

Array de enteros de 16-bit#

std::vector<uint16_t> data;llvm::Constant* arrayConstant = llvm::ConstantDataArray::get(context, data);

Array de enteros de 32-bit#

std::vector<uint32_t> data;llvm::Constant* arrayConstant = llvm::ConstantDataArray::get(context, data);

Array de enteros de 64-bit#

std::vector<uint64_t> data;llvm::Constant* arrayConstant = llvm::ConstantDataArray::get(context, data);

Array de flotantes de 32-bit#

std::vector<float> data;llvm::Constant* arrayConstant = llvm::ConstantDataArray::get(context, data);

Array de flotantes de 64-bit#

std::vector<double> data;llvm::Constant* arrayConstant = llvm::ConstantDataArray::get(context, data);

Array de caracteres#

bool addNull = true;            // ¿Agregar terminador nulo ( '\0' ) ?const char* value = "test";//const std::string value = "test";
llvm::Constant* stringConstant = llvm::ConstantDataArray::getString(context, value, addNull);

Alternativas para enteros#

  • Obtener un entero de 1-bit (booleano)
builder.getInt1(value);
  • Obtener un entero de 1-bit (booleano true)
builder.getTrue();
  • Obtener un entero de 1-bit (booleano false)
builder.getFalse();
  • Obtener un entero de 8-bit
builder.getInt8(value);
  • Obtener un entero de 16-bit
builder.getInt16(value);
  • Obtener un entero de 32-bit
builder.getInt32(value);
  • Obtener un entero de 64-bit
builder.getInt64(value);