http://www.sxc.hu/photo/1160562

Optimising C for T3RAS

After lots of testing i found certain variances that can help in speeding up code. These are a few simple practices. Know your target. If the T3RAS core you’re compiling for contains hardware features like multiplier and barrel shifting, include it when compiling your code using -mattr=barrel,mul . Both instructions Read more

http://www.sxc.hu/photo/1160562

T3RAS LLVM Backend Features

The T3RAS backend in llvm is based on the microblaze 6.3 architecture set but without hardware support for floating points and without hardware division. The T3RAS backend contains 3 variants (T3RAS1T, T3RAS2T, T3RAS4T) which is described below. To list all variants and features of T3RAS, simply run: llvm-as < /dev/null Read more

http://www.sxc.hu/photo/1160562

LLVM Backend Port Progress

While i was successful in making sure the backend appeared with the right name and features that were needed, there were still many shortcomings that needed to be addressed. After a while of copying, modifying and adapting code, I was finally able to change the names and variants. Instead of Read more

http://www.sxc.hu/photo/1160562

LLVM

Finally managed to compile LLVM and clang for microblaze. I find using configure –target= or -target doesnt work while using –enable-targets=”mblaze” worked. I found the documentation to be very poor on this and does not mention anything about the other options available in configure such as using –enable-targets.  I also Read more

First Day

First day at aeste, tried to set up workplace but had to leave the PC to download the eclipse addon overnight. Will compile the tools and check eclipse tomorrow.

Welcome Lunch

I was being informed that my blog posts were too technical until a point that it bored the readers. I felt pity for my supervisor, because he needs to read through all my dull blog posts before publishing them. The reason that I prefer to blog technical stuff is that Read more

uCLinux: Processes in kernel

Processes can be classified as either I/O-bound or processor-bound. As the name suggests, the former is a process where much of the time is spent in waiting for relatively slow I/O operations to complete. For instance, a process taking input for a word processor will be I/O-bound as it spends most of its time Read more

LLVM: Compiling FreeRTOS with LLVM (Part 2)

Continue from my previous post, LLVM: Compiling FreeRTOS with LLVM (Part 1). Anybody who might have some basic skills in programming, creating Makefiles especially, must be laughing hysterically if they come across and read my previous post in this topic. When I google the phrase “Compiling freertos with llvm” or Read more

uCLinux: Multitasking in Linux kernel

Multitasking operating system is a software that offers interleave execution of more than one process. It is capable of executing several processes concurrently and therefore giving an illusion of parallelism in the view of user abstraction. Multitasking operating systems come in two flavors: cooperative multitasking and preemptive multitasking. In cooperative multitasking, a process does not stop running until it is Read more