Jörg Sonnenberger 
       Clang on SPARC 
    
    
       Why SPARC? 
      
        -  Strict alignment architecture 
 
        -  Register windows 
 
        -  Big Endian 
 
      
    
    
       The history of the SPARC target in LLVM 
      
        -  Older than Clang 
 
        -  ...much older than clang: first commit in 2004 
 
        -  No commercial backing, for-fun development only 
 
        -  2013: initial SPARCv9 support 
 
        -  2014, 2015: much polishing 
 
      
    
    
       Current situation 
      
        -  SPARCv8 is assumed 
 
        -  GNU as bug for FP branch instructions — adds extra nops 
 
        -  Integrated Assembler: mostly working 
 
        -  ...missing ASI support kind of kills it for NetBSD 
 
        -  Code generator: atomics require SPARCv8+ 
 
        -  ...and SPARC64 only supports atomics for 32bit and 64bit types 
 
      
    
    
       Clang 3.8.0 
      
        -  32bit SPARC missing va_arg support for struct / union 
 
        -  Personality routines build do not work correctly 
 
        -  Merges pending 
 
      
    
    
       NetBSD and Clang on SPARC 
      
        -  Kernel and boot loader currently crash in qemu 
 
        -  SPARC64 userland on top of GCC-build kernel 
 
        -  Userland: ATF run shows 33 unexpected failures 
 
        -  ...some of them qemu issues 
 
        -  ...more of them bad test cases unable to deal with lack of gcc 
 
        -  Second ATF run: down to 20 unexpected failurse 
 
        -  ...still two no-gcc cases