RobertoRosmaninho's Blog

Weekly check-in #3

RobertoRosmaninho
Published: 06/22/2021

What did I do this week?

This week I focused on testing compiler and run simple programs using the LLVM backend already implemented. I had to Generate the LLVM IR, compile it to assembly, and then use this code in a C program, where I could finally test the implementation. When I executed this test, I realize that the basic blocks of the 'for' loop didn't generate correctly. A second problem emerges with Guilherme's help: a bitwise instruction was missing on a tensor declaration producing errors on assignments. After fixing these bugs a PR was sent by Guilherme and the simple example "A(i) = B(i)" was finally compiling and executing correctly. For now, the "for" loop the way it should.

What is coming up?

This week I'll test some complex examples and investigate if there is any problem with the translation of conditional instructions to LLVM IR.

Did I get stuck anywhere?

Yes, I had some issues executing the code, but mainly my problem was to find what was wrong in the tensor assignment, but these doubts were solved with the precious help of my mentor.
View Blog Post

Weekly check-in #2

RobertoRosmaninho
Published: 06/17/2021

What did I do this week?

The first few days, I tried to compile simple programs to understand how the LLVM module is generated and after a Google Meet with Guilherme Leobas, some things became clearer and I could finally do this without any further problems. I submitted a PR adding some new build information on TACO`s README.md to help new users and realized that many pieces of LLVM IR are not being generated yet by TACO's LLVM Backend, so I opened an issue on GitHub with the details of this problem and already started to work to fix it. The first part of these problems seems to be related to the target machine since the "Target Triple" and the "Target DataLayout" are missing. Although these problems seems more difficult than I thought, I hope to fix them soon.

What is coming up?

This second week, I'll try to complete the LLVM IR's missing parts, review the code generated by "for" and "while" and fix any possible errors on their implementations.

Did I get stuck anywhere?

Yes! At first, I got stuck in compile simple programs and generated their LLVM IR. Then I got stuck in fixing the missing parts of LLVM that I discussed above.
View Blog Post

Weekly Check-in #1

RobertoRosmaninho
Published: 06/08/2021

Hello everyone! My name is Roberto Rosmaninho, and I'm a third-year undergraduate student at Universidade Federal de Minas Gerais in Brazil, where my major is in Computer Science. I'm glad to participate in Google Summer of Code as a contributor for PyData/Sparse under the Python Software Foundation. I'll complete the implementation of the LLVM Back-end for The Tensor Algebra Compiler (TACO). So far, I only have discussed the design implementation of BinaryOps, new build instructions for the README, and submit a Pull Request to update the branch that already contains the beginning of the Back-end's code. This week I'll study and improve, if necessary, the implementation of the LLVM Module, Function, Block, and Scope! All the discussions are being public on Gitter, so anyone interested in more details can follow my progress from there! Thanks for the interest, and I see you here next week! Best regards, Roberto Rosmaninho
View Blog Post