[llvm] r235244 - docs: Update Kaleidoscope for recent DI changes

Sean Silva chisophugis at gmail.com
Fri Apr 17 18:18:07 PDT 2015


Thanks!

On Fri, Apr 17, 2015 at 5:01 PM, Duncan P. N. Exon Smith <
dexonsmith at apple.com> wrote:

> Author: dexonsmith
> Date: Fri Apr 17 19:01:35 2015
> New Revision: 235244
>
> URL: http://llvm.org/viewvc/llvm-project?rev=235244&view=rev
> Log:
> docs: Update Kaleidoscope for recent DI changes
>
> This has been bit-rotting, so fix it up.  I'll have to edit this again
> once the MD* classes have been renamed to DI* -- I'll try to remember to
> do that with the commit that renames them.
>
> Modified:
>     llvm/trunk/docs/tutorial/LangImpl8.rst
>
> Modified: llvm/trunk/docs/tutorial/LangImpl8.rst
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/tutorial/LangImpl8.rst?rev=235244&r1=235243&r2=235244&view=diff
>
> ==============================================================================
> --- llvm/trunk/docs/tutorial/LangImpl8.rst (original)
> +++ llvm/trunk/docs/tutorial/LangImpl8.rst Fri Apr 17 19:01:35 2015
> @@ -187,13 +187,13 @@ expressions:
>    static DIBuilder *DBuilder;
>
>    struct DebugInfo {
> -    DICompileUnit TheCU;
> -    DIType DblTy;
> +    MDCompileUnit *TheCU;
> +    MDType *DblTy;
>
> -    DIType getDoubleTy();
> +    MDType *getDoubleTy();
>    } KSDbgInfo;
>
> -  DIType DebugInfo::getDoubleTy() {
> +  MDType *DebugInfo::getDoubleTy() {
>      if (DblTy.isValid())
>        return DblTy;
>
> @@ -245,26 +245,26 @@ So the context:
>
>  .. code-block:: c++
>
> -  DIFile Unit = DBuilder->createFile(KSDbgInfo.TheCU.getFilename(),
> -                                     KSDbgInfo.TheCU.getDirectory());
> +  MDFile *Unit = DBuilder->createFile(KSDbgInfo.TheCU.getFilename(),
> +                                      KSDbgInfo.TheCU.getDirectory());
>
> -giving us a DIFile and asking the ``Compile Unit`` we created above for
> the
> +giving us an MDFile and asking the ``Compile Unit`` we created above for
> the
>  directory and filename where we are currently. Then, for now, we use some
>  source locations of 0 (since our AST doesn't currently have source
> location
>  information) and construct our function definition:
>
>  .. code-block:: c++
>
> -  DIDescriptor FContext(Unit);
> +  MDScope *FContext = Unit;
>    unsigned LineNo = 0;
>    unsigned ScopeLine = 0;
> -  DISubprogram SP = DBuilder->createFunction(
> +  MDSubprogram *SP = DBuilder->createFunction(
>        FContext, Name, StringRef(), Unit, LineNo,
>        CreateFunctionType(Args.size(), Unit), false /* internal linkage */,
> -      true /* definition */, ScopeLine, DIDescriptor::FlagPrototyped,
> false, F);
> +      true /* definition */, ScopeLine, DebugNode::FlagPrototyped, false,
> F);
>
> -and we now have a DISubprogram that contains a reference to all of our
> metadata
> -for the function.
> +and we now have an MDSubprogram that contains a reference to all of our
> +metadata for the function.
>
>  Source Locations
>  ================
> @@ -330,13 +330,13 @@ by constructing another small function:
>  .. code-block:: c++
>
>    void DebugInfo::emitLocation(ExprAST *AST) {
> -    DIScope *Scope;
> +    MDScope *Scope;
>      if (LexicalBlocks.empty())
> -      Scope = &TheCU;
> +      Scope = TheCU;
>      else
>        Scope = LexicalBlocks.back();
>      Builder.SetCurrentDebugLocation(
> -        DebugLoc::get(AST->getLine(), AST->getCol(), DIScope(*Scope)));
> +        DebugLoc::get(AST->getLine(), AST->getCol(), Scope));
>    }
>
>  that both tells the main ``IRBuilder`` where we are, but also what scope
> @@ -347,11 +347,11 @@ of scopes:
>
>  .. code-block:: c++
>
> -   std::vector<DIScope *> LexicalBlocks;
> -   std::map<const PrototypeAST *, DIScope> FnScopeMap;
> +   std::vector<MDScope *> LexicalBlocks;
> +   std::map<const PrototypeAST *, MDScope *> FnScopeMap;
>
> -and keep a map of each function to the scope that it represents (a
> DISubprogram
> -is also a DIScope).
> +and keep a map of each function to the scope that it represents (an
> +MDSubprogram is also an MDScope).
>
>  Then we make sure to:
>
> @@ -392,16 +392,16 @@ argument allocas in ``PrototypeAST::Crea
>
>  .. code-block:: c++
>
> -  DIScope *Scope = KSDbgInfo.LexicalBlocks.back();
> -  DIFile Unit = DBuilder->createFile(KSDbgInfo.TheCU.getFilename(),
> -                                     KSDbgInfo.TheCU.getDirectory());
> -  DIVariable D = DBuilder->createLocalVariable(dwarf::DW_TAG_arg_variable,
> -                                               *Scope, Args[Idx], Unit,
> Line,
> -                                               KSDbgInfo.getDoubleTy(),
> Idx);
> +  MDScope *Scope = KSDbgInfo.LexicalBlocks.back();
> +  MDFile *Unit = DBuilder->createFile(KSDbgInfo.TheCU.getFilename(),
> +                                      KSDbgInfo.TheCU.getDirectory());
> +  MDLocalVariable D = DBuilder->createLocalVariable(
> +      dwarf::DW_TAG_arg_variable, Scope, Args[Idx], Unit, Line,
> +      KSDbgInfo.getDoubleTy(), Idx);
>
>    Instruction *Call = DBuilder->insertDeclare(
>        Alloca, D, DBuilder->createExpression(), Builder.GetInsertBlock());
> -  Call->setDebugLoc(DebugLoc::get(Line, 0, *Scope));
> +  Call->setDebugLoc(DebugLoc::get(Line, 0, Scope));
>
>  Here we're doing a few things. First, we're grabbing our current scope
>  for the variable so we can say what range of code our variable is valid
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150417/3e36483c/attachment.html>


More information about the llvm-commits mailing list