ng generate – Starting Projects the Right Way

ng build The ng build command is intended to prepare your application bundle to be executed by the production web server of your choice. It performs a series of optimizations

Read More

ng add – Starting Projects the Right Way

This command has the function of adding an Angular library to your project. You might be wondering, Doesn’t npm install do the same thing? and you’d be right. However, when

Read More

Project structure – Starting Projects the Right Way

The Angular CLI creates the project in the structure recommended by the Angular team with all files configured by default. To deepen our knowledge of the framework, we need to

Read More

Starting an Angular project – Starting Projects the Right Way

We have our tools installed and configured and now we are going to start our Angular application. First, we are going to install the Angular CLI, which will be responsible

Read More

Batteries included – Starting Projects the Right Way

Angular is a framework that has the motto “batteries included” as a development philosophy. This means that practically all the resources you need for your frontend application needs are already

Read More

CROSS-COMPILING WITH CLANG – Beyond Instruction Selection

As LLVM generates code for different architectures, it seems obvious to use clang to cross-compile. The obstacle here is that LLVM does not provide all the required parts – for

Read More

Targeting a different CPU architecture – Beyond Instruction Selection

Today, many small computers, such as the Raspberry Pi, are in use despite having only limited resources. Running a compiler on such a computer is often not possible or it

Read More

Implementing the toolchain support for M88k within clang – Beyond Instruction Selection-2

StringRef m88k::getM88kTargetCPU(const ArgList &Args) {Arg *A = Args.getLastArg(options::OPT_m88000, options::OPT_m88100, options::OPT_m88110, options::OPT_mcpu_EQ);if (!A)return StringRef();switch (A->getOption().getID()) {case options::OPT_m88000:return “mc88000”;case options::OPT_m88100:return “mc88100”;case options::OPT_m88110:return “mc88110”;case options::OPT_mcpu_EQ:return normalizeCPU(A->getValue());default:llvm_unreachable(“Impossible option ID”);}} StringRef m88k::getM88kTuneCPU(const ArgList &Args) {if

Read More

Implementing the toolchain support for M88k within clang – Beyond Instruction Selection-1

The final portion of the M88k target integration within clang will be to implement toolchain support for our target. Like before, we’ll need to create a header file for toolchain

Read More

Implementing the driver integration within clang – Beyond Instruction Selection-4

const char *const M88kTargetInfo::GCCRegNames[] = {“r0”, “r1”, “r2”, “r3”, “r4”, “r5”, “r6”, “r7”,“r8”, “r9”, “r10”, “r11”, “r12”, “r13”, “r14”, “r15”,“r16”, “r17”, “r18”, “r19”, “r20”, “r21”, “r22”, “r23”,“r24”, “r25”, “r26”, “r27”,

Read More