The new ISO C programming language standard provides several features to aid
in programming productivity, debugging, and performance. Rajan Bhakta explains
which of these are already included in IBM XL compilers for easier debugging and
improved performance. More >
Computer architectures designed with high-performance microprocessors are reshaping the IT landscape. Today's software developers must deliver products and services faster with higher quality and performance to stay competitive, but in an environment with unprecedented potential, it's increasingly difficult for application developers to simultaneously handle business logic and performance issues in their code. That's where IBM Power Systems technology steps in, says Susan Yoskin, IBM Rational marketing solution manager. Power Systems are based... [More]
In a previous post I showed how to use the operand syntax of inline asm to eliminate the need for explicit loads and stores in the asm code. I wound up with an asm like this... asm ( "addi %0,%0, 88 \n" : " +r" (x) : ); However, there is a subtle problem with this code that is often overlooked (including by myself) -- the dreaded r0 problem. Certain instructions on Power have special semantics when one of the register input operands is r0. For example, in the case of addi, if the second... [More]
Get the highlights of the new and enhanced features in XL C/C++ Version 12.1,
including support of language features that enable users to port code easily
when moving to IBM Power Systems, as well as improved compilation time at
commonly used optimization levels. This article is for those who have some
experience with previous versions of XL C/C++. Read more .
Check out this recorded webinar by IBM Systems Magazine about Smart Tools on IBM i, AIX, and Linux for Faster Time to Market Get an early look at the
next version of Rational's offerings for Power Systems. New advancements
in compilers and significantly enhanced development tools will give
your organization a competitive advantage! Listen to the replay .
Looking to see and learn about the latest compiler enhancements in XL C/C++ on AIX and Linux. Download a trial. Here is quick recap of some of the highlights of these new compilers: Compliance to ISO programming language standards including C99 and C++2003,
emerging support for C11 and addition support for C++11, the latest standards
for the C and C++ programming languages Support for the OpenMP 3.1 industry specification Compile time performance and scalability improvements Enhancements to the diagnostic reports that can help identify... [More]
Those of us who develop C++ applications for a living, often hit a dilemma when analyzing functional errors. Should I debug my application using a symbolic debugger, or should I just add prints and traces to the code to understand its behavior? Too often developers choose the latter, slowing down the application development cycle. Not only must they recompile parts of the application to pick up these changes, but they need to know ahead of time what data to examine, which is often hard to predict in advance. This effectively creates a long... [More]
Check out all the information about the latest release of XL C for AIX, XL C/C++ for AIX, and XL C/C++ for Linux. You can get a summary of each release by product as well as all the announcement details. See What's new in the release including enhancements to improve application performance and programmer productivity. For all the details about the XL C and XL C/C++ announcements, see these resources. And don't forget our Webinar and Innovate2012 where you will hear lots more about the latest compilers. Webinar: Smart Tools on IBM i, AIX,... [More]
The May 2012 Compiler PTFs for XL C/C++ for AIX, V10.1 are now available at the following links and on Fix Central: May 2012 PTF for XL C for AIX, V10.1 May 2012 PTF for XL C/C++ for AIX, V10.1 Can't find the updates for your compiler? Check out our C/C++ compiler latest update page here .
The basic premise of inline asm is to be able to write assembly code within your C or C++ program (using asm operands to connect the asm code to the parent program), delegate the translation of that assembly to the compiler and/or the system assembler, and consequently have the resulting machine code embedded within your program at the location you specified. The reasons for using inline asm can be many, but one reason can be to utilize special instructions are too new or too novel for either the compiler or assembler to know about. That seems... [More]
The April 2012 Compiler PTFs for XL C/C++ for AIX, V11.1 are now available at the following links and on Fix Central: April 2012 PTF for XL C for AIX, V11.1 April 2012 PTF for XL C/C++ for AIX, V11.1 Can't find the updates for your compiler? Check out our C/C++ compiler latest update page here .
This posting concerns outputs which are assigned registers that may overlap with inputs. Consider this inline asm that uses addc and adde in order to accomplish 128 bit arithmetic... asm ("addc %0, %2, %3 \n" "adde %1, %4, %5 \n" : "=r"(xl),"=r"(xu) : "r"(yl),"r"(zl),"r"(yu),"r"(zu)); In this example all the inputs and outputs are unsigned longs. Unfortunately, although it looks pretty straightforward, there is a potentially... [More]
The April 2012 PTF for XL C/C++ Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0 is now available at the following links and on Fix Central : April 2012 Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0 Can't find the updates for your compilers? Check out our C/C++ compilers latest updates page here .
If you use zOS and applications running zOS as frequent as I do, you probably have defined best-scenarios possible to perform repeating tasks [as I have]. One of the things that I often have to do on a daily basis is to investigate and debug application errors and often the first lead I have into what the root cause maybe is the output and/or error messages. Just in case some of you may not know about this online facility that lets you look up explanations for the IBM messages, as well as for some system abends and codes, I provide a link... [More]
Hi. This is the first posting in what I hope to be a continuing blog on tips and tricks for inline assembly – a.k.a. asm – which is a way of inserting assembly language into your C and C++ programs. In this blog I won’t be covering basic syntax and semantics (you can get that by consulting a DeveloperWorks article – link at the end), but rather will focus on some of the trickier aspects of using inline asm in your programs. My primary focus will be on the Power architecture. Today I’ll start with tips for input and output operands. Imagine... [More]