x86/x64 Compiler Backend Team Weblog

20070531 Thursday May 31, 2007

What is new in x86/x64 Sun Studio 12 compiler backend

What is new in x86/x64 Sun Studio 12 compiler backend?


New Media Intrinsic functions in Studio 12

  • added Media floating point intrinsic function support
  • added GCC/ICC compatible sse3 intrinsics support
  • user can find such intrinsic function listing in /opt/SUNWspro/prod/include/cc/sys header files:
  • mmintrin.h     -- MMX intrinsics
    xmmintrin.h -- SSE intrinsics
    emmintrin.h -- SSE2 intrinsics
    pmmintrin.h -- SSE3 intrinsics

Enhanced profiling feedback support

  • mt-safe profiling
  • Added value and Synthetic profiling


Internal optimization enhancement

  • Improved register allocation of stack based function arguments
  • Introduced fallthrough optimization for C++ code
  • Improved processing of extended intermediate representation types
  • Improved 32/64 bit alignment implementation
  • Improved inline template optimization under 64 bit mode
  • Implemented smart jump target alignment
  • Improved tailcall optimization
  • Improved profile feedback optimizations
  • Reworked and enhanced peephole optimizer
  • Compile time improvements - rewritten graphs processing algorithms
  • Improved performance for MMX based intrinsics
  • Improved generation of data prefetch instruction
  • Extensive machine-independent and machine-dependent optimizations
  • Vectorization support
  • Instruction scheduling
  • Code/data relocation for optimal cache use

New -xarch, -xchip and -xtarget

  • support AMD10h family processors

     added -xarch=amd10h,  -xchip=barcelona
  • SSE3 support

           added -xarch=sse3 and sse3a support

 


Debugger RTC support

Users in x86/x64 debugger can use RTC features to deal with the memory leaks, memory access problems 

One may read Leonard Li's blog: http://blogs.sun.com/janitor/entry/runtime_memory_checking 


Linux Compiler support

The Linux and Solaris x86/x64 code are very much alike, the difference are mostly in the run time libraries supplied from different OSs.


-xopenmp=noopt -g support


-fast include -xregs=frameptr

That means -fast will not generate frame ptr under -fast flag, but using the frame pointer register as a general register to generate code


Internal component ube_ipa is replaced by ipo

-xO5 will not call ube_ipa any more, but -xipo can be used to invoke ipo


asm inline optimization in backend

.il file code was taken "as it is" before studio12, but optimization work has been enhanced on the inline code.


Runtime performance improvement

Many benchmark programs has better number with studio12

See Vijay Tatkar's blog: http://blogs.sun.com/tatkar/entry/sunstudio_12_is_released


GCC style asm support

see Alfred Huang's blog:    http://blogs.sun.com/alblog/entry/on_studio_and_gcc_style

and Steve Scott and Deeparkar Bairagi's blog:  http://blogs.sun.com/x86be/entry/gcc_style_asm_inlining_support


 EOF of -xchip={386, 486}, -xtarget={386, 486} -x386, -x486

The Sun Studio 9 Developer's portal website has announced the EOF(End Of Feature) of these flags.  

In Sun Studio 12, these flags will be no longer recognized by C/C++/Fortran compilers.


 



 

 


Posted by x86be ( May 31 2007, 03:49:12 PM PDT ) Permalink Comments [0]


Archives
Patches
Links
Referrers