Walter Banks's blog
Checking eTPU_C generated code
Submitted by Walter Banks on Wed, 2010-01-27 22:47. assembly | eTPU | eTPU_CTools in your eTPU toolchain may support you by disassembling eTPU_C-generated code. If they report instructions different than eTPU_C's listing file shows, you may be inclined to verify eTPU_C's output by hand.
eTPU machine code is very complex compared to traditional machine language. As a result, we receive support questions from people who have encountered subinstructions they didn't expect.
Parallelism
Submitted by Walter Banks on Fri, 2009-10-09 20:54. C | IEC 61131
In the comp.arch newsgroup, we've been following a heated discussion about Parallelism. It's focused on the question of designing software to run on multiple cores, either with shared memory or message passing.
We're of the opinion that the compiler can assist the developer in this task. After all, the compiler knows what is (or could be) in memory at any one moment.
The stack controversy
Submitted by Walter Banks on Thu, 2009-09-17 14:44. C | compiler
Just when you think an old misconception is dead...
The "stack/no stack" discussion has arisen again. We've heard renewed
claims that C programs require a hardware stack, and that a software
stack is unacceptably slow. Both ideas are patently false.
Alternative opcodes
Submitted by Walter Banks on Tue, 2009-05-05 21:05. opcodes | optimizationA support question brought up an interesting optimization topic: alternative opcodes.
We've all heard stories of using undocumented or unofficial opcodes to squeeze out a few cycles' extra performance. It's much easier, not to mention safer, to work within the published instruction set but to approach it in novel ways.
Here's an example:
A perfectly useful do-nothing statement
Submitted by Walter Banks on Tue, 2009-03-24 14:50. CC macros are very useful, but a little taxing for both compiler writers and programmers.
Our view on RS08
Submitted by Walter Banks on Tue, 2009-03-17 16:25. C6808 | RS08I just read Jack's editorial on Embedded.com on the RS08 processor. This is a fun little processor.
We did some work on the instruction set design on this processor, and wrote a C compiler for the RS08. This is a remarkable little processor that, in the end, outperformed many people's expectations (including mine).
Optimization and Debugging
Submitted by Walter Banks on Thu, 2008-09-18 21:08. debugging | optimizationThere's an active discussion about optimization and debugging going on on comp.programming and comp.compilers.
Loop Unrolling
Submitted by Walter Banks on Thu, 2008-04-24 14:01. C languageThis is the start of an interesting discussion on loop unrolling as a compiler optimization. I summed up our thinking on it:
Application code usually was very clear and almost always right
in their timing choice of straight line vs loop implementation. Rolling
up straight line code and unrolling loops more often than not
interfered with a conscience choice a developer made.
CERT C Secure Coding Standard - last call for reviewers
Submitted by Walter Banks on Thu, 2008-03-20 15:22. C languageWe're reprinting a call for the C community to review the current version of the CERT C Secure Coding Standard. Secure coding is the practice of avoiding security exploits through more rigorous control of the sources, methods, and products of compilation.
CERT's wiki has a lot of well-thought-out information in it.
Subject: CERT C Secure Coding Standard - last call for reviewers
Date: Thu, 20 Mar 2008 10:02:10 -0400
From: Robert Seacord rcs@sei.cmu.edu
Organization: Software Engineering Institute
"Linguistic Variables: Clear Thinking with Fuzzy Logic" in Toronto
Submitted by Walter Banks on Mon, 2008-03-03 20:04. events | Fuzz-C | fuzzy logic | press releaseWalter Banks will be speaking on Fuzzy Logic in Toronto in May. The seminar will be held by the Signals and Computational Intelligence Joint Chapter of IEEE Toronto.
Wednesday, May 14, 2008, 6:00 p.m. – 9:00 p.m., location to be announced.

eTPU_C:
C6808: