Skip to main content

Básico

Obtener un valor de una variable#

llvm::Value* variablePtr;llvm::Value* variableValue;
variableValue = builder.CreateLoad(variablePtr);

Guardar valor en una variable#

llvm::Value* variablePtr;llvm::Value* variableValue;
// ...builder.CreateStore(variableValue, variablePtr);

Casting#

Castear de entero a entero#

  • Castear cualquier entero a entero de 8-bit con signo
builder.CreateIntCast(value, builder.getInt8Ty(), true);
  • Castear cualquier entero a entero de 8-bit sin signo
builder.CreateIntCast(value, builder.getInt8Ty(), false);
  • Castear cualquier entero a entero de 16-bit con signo
builder.CreateIntCast(value, builder.getInt16Ty(), true);
  • Castear cualquier entero a entero de 16-bit sin signo
builder.CreateIntCast(value, builder.getInt16Ty(), false);
  • Castear cualquier entero a entero de 32-bit con signo
builder.CreateIntCast(value, builder.getInt32Ty(), true);
  • Castear cualquier entero a entero de 32-bit sin signo
builder.CreateIntCast(value, builder.getInt32Ty(), false);
  • Castear cualquier entero a entero de 64-bit con signo
builder.CreateIntCast(value, builder.getInt64Ty(), true);
  • Castear cualquier entero a entero de 64-bit sin signo
builder.CreateIntCast(value, builder.getInt64Ty(), false);

Castear de flotante a entero#

  • Castear cualquier flotante a un entero de 8-bit con signo
builder.CreateFPToSI(value, builder.getInt8Ty());
  • Castear cualquier flotante a un entero de 8-bit sin signo
builder.CreateFPToUI(value, builder.getInt8Ty());
  • Castear cualquier flotante a un entero de 16-bit con signo
builder.CreateFPToSI(value, builder.getInt16Ty());
  • Castear cualquier flotante a un entero de 16-bit sin signo
builder.CreateFPToUI(value, builder.getInt16Ty());
  • Castear cualquier flotante a un entero de 32-bit con signo
builder.CreateFPToSI(value, builder.getInt32Ty());
  • Castear cualquier flotante a un entero de 32-bit sin signo
builder.CreateFPToUI(value, builder.getInt32Ty());
  • Castear cualquier flotante a un entero de 64-bit con signo
builder.CreateFPToSI(value, builder.getInt64Ty());
  • Castear cualquier flotante a un entero de 64-bit sin signo
builder.CreateFPToUI(value, builder.getInt64Ty());

Castear de entero a flotante#

  • Castear cualquier entero con signo a flotante de 32-bit
builder.CreateSIToFP(value, builder.getFloatTy());
  • Castear cualquier entero sin signo a flotante de 32-bit
builder.CreateUIToFP(value, builder.getFloatTy());
  • Castear cualquier entero con signo a flotante de 64-bit
builder.CreateSIToFP(value, builder.getDoubleTy());
  • Castear cualquier entero sin signo a flotante de 64-bit
builder.CreateUIToFP(value, builder.getDoubleTy());

Castear de flotante a flotante#

  • Castear cualquier flotante a flotante de 32-bit
builder.CreateFPCast(value, builder.getFloatTy());
  • Castear cualquier flotante a flotante de 64-bit
builder.CreateFPCast(value, builder.getDoubleTy());