========================================================================
* IBM XL C/C++ Alpha Edition for Multicore Acceleration for Linux, V0.9 
* (Single-Source Compiler)
* COPYRIGHT International Business Machines Corp. 2007
* All Rights Reserved
* Licensed Materials - Property of IBM
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
*
* IBM and POWER are trademarks of International Business Machines Corporation 
* in the United States, other countries, or both.
*
* Cell Broadband Engine is a trademark of the Sony Corporation and/or the Sony
* Computer Entertainment, Inc., in the United States, other countries, or both
* and is used under license therefrom.
*
* Linux is a trademark of Linus Torvalds in the United States, other
* countries, or both.
*
* Adobe is the registered trademark of Adobe Systems Incorporated in the 
* United States, and/or other countries. 
*
* Other company, product, and service names may be trademarks or service
* marks of others.
========================================================================

This README file contains information about IBM XL C/C++ Alpha Edition for 
Multicore Acceleration for Linux, V0.9 that is specific to this Alpha 
release. Please see section 5 below for information on how you can provide 
your feedback on this Alpha.

By using IBM XL C/C++ Alpha Edition for Multicore Acceleration for Linux, V0.9
you agree to the terms of the License (International License Agreement for
Early Release of Programs and License Information). 


This document contains the following sections:

      1.  System requirements
      2.  Limitations
      3.  Alpha Documentation


1. System requirements
========================================================================
Hardware:   IBM POWER technology-based system, or,
            x86 or x86-64 2-GHz Pentium 4 system
            Minimum 256 MB RAM and 200 MB available hard disk space	

Operating system:   Fedora 7

Required Software:  IBM Software Development Kit for Multicore Acceleration Version 3.0
                    gcc v4.1.1 
                    gcc-c++ v4.1.1 
                    glibc v2.5 
                    libgcc v4.1.1 
                    libstdc++ v4.1.1 
                    Perl V5.0 or higher

All software prerequisites can be obtained from your operating system's installation 
media and the IBM Software Development Kit for Multicore Acceleration Version 3.0.



2. Limitations
========================================================================
a. Code size: The code generated for an OpenMP parallel region plus all routines 
   called from inside it must fit in the SPE local store. Some runtime mechanisms 
   such as code overlays may be used to minimize usage of the local store, but it 
   is anticipated that this mechanism may not eliminate all restrictions on SPE 
   code size. 

b. Stack size: The total size of the stack frames of the threads executing the OpenMP 
   parallel regions must fit inside the SPE local store. The programmer must minimize 
   stack storage allocation, for example by using static variables or heap-allocated 
   storage whenever possible.  We do not support recursive functions yet, though a it
   may not really cause stack overflow.

c. Intrinsic support and native code: The OpenMP parallel regions will be processor-
   agnostic, and as such processor-specific intrinsics will not be available for use 
   inside them.  Inline asm constructs are not permitted inside the dynamic extent of 
   any parallel regions. For the same reason user library functions used inside a 
   parallel region need to provide two versions and identified by an extra list.

d. Restricted subset of standard libraries: A very small subset of the standard 
   libraries will be available for use inside the OpenMP parallel regions. In 
   particular, there will be very limited I/O support from within the parallel 
   regions, and no signal management.

e. Limited C++ support: No C++ exceptions can be thrown inside the OpenMP parallel 
   regions. C++ objects privatization not working well. Some c++ runtime functions 
   such as NEW will not work.

f. Runtime schedule in OpenMP 2.5 is not fully support. Right now we only have static 
   scheduling.

g. 32-bit only. The PPE part of the code will run only on 32-bit mode. There will be 
   no 64-bit support.

h. Function pointers and computational goto statement: We do not have a full solution 
   on these features yet.



3. Alpha Documentation
========================================================================
The following documentation is available for this Alpha:

a. Readme file 
 
b. "Using the single-source compiler" - you must have a PDF viewer, such as Adobe Reader.

Complete information for installing and viewing documentation is provided
in "Using the single-source compiler".





