Lines Matching +full:release +full:- +full:doxygen
20 need to use a version of this tutorial that matches your LLVM release:
21 If you are using an official LLVM release, use the version of the
22 documentation included with your release or on the `llvm.org releases
32 .. code-block:: c++
34 /// ExprAST - Base class for all expression nodes.
41 /// NumberExprAST - Expression class for numeric literals like "1.0".
57 it does not get a new value until (and if) the instruction re-executes.
61 - the concepts are really quite natural once you grok them.
74 .. code-block:: c++
93 `IRBuilder <https://llvm.org/doxygen/IRBuilder_8h_source.html>`_
98 variables. In many ways, it is the top-level structure that the LLVM IR
122 .. code-block:: c++
136 .. code-block:: c++
153 variables <LangImpl05.html#for-loop-expression>`_ in the symbol table, and for `local
154 variables <LangImpl07.html#user-defined-local-variables>`_.
156 .. code-block:: c++
159 Value *L = LHS->codegen();
160 Value *R = RHS->codegen();
166 return Builder->CreateFAdd(L, R, "addtmp");
167 case '-':
168 return Builder->CreateFSub(L, R, "subtmp");
170 return Builder->CreateFMul(L, R, "multmp");
172 L = Builder->CreateFCmpULT(L, R, "cmptmp");
174 return Builder->CreateUIToFP(L, Type::getDoubleTy(*TheContext),
182 that we recursively emit code for the left-hand side of the expression,
183 then the right-hand side, then we compute the result of the binary
199 `LLVM instructions <../../LangRef.html#instruction-reference>`_ are constrained by strict
201 instruction <../../LangRef.html#add-instruction>`_ must have the same type, and the
207 instruction <../../LangRef.html#fcmp-instruction>`_ always returns an 'i1' value (a
211 instruction <../../LangRef.html#uitofp-to-instruction>`_. This instruction converts its
214 instruction <../../LangRef.html#sitofp-to-instruction>`_, the Kaleidoscope '<' operator
215 would return 0.0 and -1.0, depending on the input value.
217 .. code-block:: c++
221 Function *CalleeF = TheModule->getFunction(Callee);
226 if (CalleeF->arg_size() != Args.size())
231 ArgsV.push_back(Args[i]->codegen());
236 return Builder->CreateCall(CalleeF, ArgsV, "calltmp");
247 instruction <../../LangRef.html#call-instruction>`_. Note that LLVM uses the native C
268 .. code-block:: c++
304 .. code-block:: c++
308 for (auto &Arg : F->args())
324 .. code-block:: c++
328 Function *TheFunction = TheModule->getFunction(Proto->getName());
331 TheFunction = Proto->codegen();
336 if (!TheFunction->empty())
346 .. code-block:: c++
350 Builder->SetInsertPoint(BB);
354 for (auto &Arg : TheFunction->args())
370 .. code-block:: c++
372 if (Value *RetVal = Body->codegen()) {
374 Builder->CreateRet(RetVal);
386 LLVM `ret instruction <../../LangRef.html#ret-instruction>`_, which completes the function.
393 .. code-block:: c++
396 TheFunction->eraseFromParent();
431 Read top-level expression:
437 Note how the parser turns the top-level expression into anonymous
439 support <LangImpl04.html#adding-a-jit-compiler>`_ in the next chapter. Also note that the
442 optimizations <LangImpl04.html#trivial-constant-folding>`_ explicitly in the next
486 Read top-level expression:
552 `llvm-config <https://llvm.org/cmds/llvm-config.html>`_ tool to inform
555 .. code-block:: bash
558 clang++ -g -O3 toy.cpp `llvm-config --cxxflags --ldflags --system-libs --libs core` -o toy