Básico
#
Obtener un valor de una variablellvm::Value* variablePtr;llvm::Value* variableValue;
variableValue = builder.CreateLoad(variablePtr);
#
Guardar valor en una variablellvm::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());