After reading the previous blog on this topic, in this blog I expand on the Metal C function descriptor topic. The z/OS V2.3 Metal C Programming Guide , as well as z/OS V2.3 Language Referenc provide information on this new Metal C feature. Here, I try to build an example based on the description provided in these two books. A function pointer that is declared with __fdptr keyowrd point to a Metal C function descriptor, which is an internal control block and holds two pieces of... [More]
z/OS V2R3 XL C/C++, IBM Mainframe flagship compiler for IBM Z, was announced this week; with features targetting the latest release of IBM Z, z14, as well as features targetting general application development. A complete list of these features is put together in this compiler's data sheet, and can be found here: http://www-01.ibm.com/support/docview.wss?uid=swg27050023&aid=1 Amongst the zOS V2R3 XL C/C++ new capabilities is the support for a new keyword, __fdptr. This keyword is available for Metal C... [More]
Have you ever spent time looking for the documentation to solve an error you encountered when using z/OS XL C/C++? If so, IBM Doc Buddy will be the right choice for you. With IBM Doc Buddy, you can easily find the solution to an error message on your smart phone. IBM Doc Buddy is a free mobile application that retrieves support documentation for z products. It reduces the time you spend in resolving problems and improves your information experience. A key strength of IBM Doc Buddy is that it enables you to look up message... [More]
This week, IBM Edge2015 takes place from May 11 - 15 in The Venetian, Las Vegas, Nevada. TechnicalEdge at Edge2015 provides an opportunity for clients to experience rich technical content and take part in skill building sessions taught by our experts. Join our compiler experts in a number of sessions on the latest compilation technology advancements: lAD1704: Effectively Exploit POWER8 Features to Maximize Application Performance with XL Compilers pAD1782: IBM XL C/C Compiler for Parallel Computing zAD1555: Reducing CPU Usage... [More]
This week, various members of the IBM compiler team will be attending InterConnect 2015. Join us and other members of the largest community embodying the full life-cycle of IT, assets and infrastructure — from Development to Architecture to Operations. The compiler team will be presenting the following topics this year: DEM-3886: Using New IBM Compilers to Reduce Operating Costs for Business-Critical Applications on z13... [More]
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]
The XL C METAL compiler option generates code that does not require access to the Language Environment support at run time. Instead, the METAL option provides C-language extensions that allow you to specify assembly statements that call system services directly. Using these language extensions, you can provide almost any assembly macro, and your own function prologs and epilogs, to be embedded in the generated HLASM source file. When you understand how the METAL-generated code uses MVS linkage conventions to interact with HLASM code, you can... [More]
Recently I came across a whitepaper regarding new METAL C features for the latest release for the compiler on z/OS (z/OS V1.13 XL C/C++) posted here . The whitepaper provides a broad general overview of the new features for METAL C with a lot of examples sprinkled throughout to make it easy to understand. It is a handy guide for new and existing METAL C developers or people interested in METAL C in general, even though the focus is on new features added in V1.13. METAL C was originally introduced in the z/OS V1R9 XL C/C++ compiler... [More]
Check out all the information about the latest release of z/OS XL C/C++.
You can get a summary of the release as well as all the announcement
details. See What's new in z/OS V1R13 XL C/C++ including enhancements to leverage the latest z/OS. For all the details about the z/OS V1R13 XL C/C++ announcement, see IBM z/OS V1.13 delivers new availability, batch programming, and usability functions .
In two previous posts ( here and here ) I discussed using the PFD prefetch instruction via the compiler provided bifs (built-in functions). This forum post describes how one might use this bif with a dynamic data structure such as a queue.
In a previous blog entry I discussed how one might incorporate the prefetch built-in function (bif) into a z/OS binary that is compiled with ARCH(5) i.e. a binary that will run on all supported hardware, yet when it detects it is running on a z10 or z196 system, would be able to utilize the prefetch instruction. There was a request for examples of using prefetch , which I thought was a good idea, so starting with this entry, I'll present some examples of how one might use this instruction. I'll start with a simple, basic program and in... [More]
Wondering how you can maximize the performance of your application? With the IBM z/OS C/C++ compiler, you can use a variety of compiler options, source constructs, and techniques to optimize your application. Exploiting these features will allow you to gain the most out of your IBM zEnterprise™ System. More details on how you can take advantage of these features can be found here: http://ibm.co/lDSXo9
I came across an interesting article on porting your C/C++ applications from IBM AIX to IBM z/OS. It contains information on issues you may encounter to make the porting effort smother and more error-free. It also provides some interesting points on optimizing your application once it is ported. More details can be found here: How to port from IBM AIX to IBM z/OS
Which option combination do you think yields a faster execution? A. -O2 –qinline B. -O2 –qnoinline By specifying –qinline user is asking the compiler to inline functions that meets the criteria of inlining threshold and limit size: for the z platform the default value for the relative size of the function to be inlined is 100 ACUs and the maximum relative size a function can grow before inliner stops inlining more is 1000 ACUs . While inlining eliminates the linkage overhead and provides a larger code to the compiler to be optimized, its... [More]
This is my first post on our C/C++ Cafe that has been long in coming. If you are like me, then you are a new zOS programmer. The learning ride has been quite turbulent and there are ways to go yet. If you are a devoted programmer then you feel quiet excitement of your new program almost working, tempered by the chance of another large manual being 'thrown' at you. zOS is one of those products that has too much of a good thing, that is there is a LOT of documentation. This fact very quickly becomes an advantage as one gains more experience. No... [More]