A Little About Myself

Cliff Click was the CTO of Neurensic, and CTO and Co-Founder of h2o.ai (formerly 0xdata), a firm dedicated to creating a new way to think about web-scale data storage and real-time analytics.  I wrote my first compiler when I was 15 (Pascal to TRS Z-80!), although my most famous compiler is the HotSpot Server Compiler (the Sea of Nodes IR).  I helped Azul Systems build an 864 core pure-Java mainframe that keeps GC pauses on 500Gb heaps to under 10ms, and worked on all aspects of that JVM.  Before that I worked on HotSpot at Sun Microsystems, and am at least partially responsible for bringing Java into the mainstream.

Previously I was with Motorola where I helped deliver industry leading SpecInt2000 scores on PowerPC chips, and before that I researched compiler technology at HP Labs.  I am invited to speak regularly at industry and academic conferences including JavaOne, JVM, ECOOP and VEE; I’ve served on the Program Committee of many conferences (including PLDI and OOPSLA); and have published many papers about HotSpot technology. I hold a PhD in Computer Science from Rice University and about 20 patents.

15 thoughts on “A Little About Myself

  1. Cliff,

    Reading an article by you recently brought back memories of Fifth. I was wanting to get a copy of it. Can you point me to where I could get one?

    Thanks, Steve Graham

    • Fifth! OMGs! I wrote that like 30 years ago! I have paper docs somewhere, in a pile of memories. But the code is probably on a 5″ floppy whose magnetic bits have long long eroded.

        • I still have a copy of x86 Fifth on a 5.25″ floppy. No idea if it’s readable, or where to get a drive that would be capable of reading it…

          • OMG!s…. Just had a request for a copy of the Fifth manual, that lead to somebody (you?) giving me a zip file w/Fifth on it … and me running it in DOSBOX at least 30 years after I wrote it. I possibly have a 5.25″ floppy also – and there are companys which specialize in reading this sort of thing.

          • Unfortunately that wasn’t me; the only copy I have is Fifth 2.5 on that 5.25″ disk. I do still have a paper copy of my manual filed away. I keep thinking that someday I’ll do a Fifth-like system for Joy or Scheme, but never seem to get around to it.

          • Actually, I’d be most grateful if you could send me a copy of that zip file…

  2. Hey, Cliff. Read through your articles concerning jit non jit call sequence: http://www.azulsystems.com/blog/cliff/2010-04-06-jitd-code-calling-conventions-or-answering-plea-geekyness and a bit here: http://www.azulsystems.com/blog/cliff/2010-07-16-tiered-compilation. I’ll be honest, the articles are a bit too technical for me. I noticed you mentioned adapters I2C and C2I and that they are frameless. (I’d guess, no stack consumed) If so, what would be the configuration of the Java and Native stacks. Are there any transitional frames between an interpreted meth calling compiled meth or a compiled calling a interpreted? The broader picture, is the stack consumption “overhead” JIT-ed methods result in, in both stacks and a potential worst case for stack consumption, depending on the sequence of calls. If you have time, I’d be very grateful for an answer. Thanks! Paul.

    • No transitional frames, although we sometimes have to ‘stretch’ an interpreter frame.

      Typically JIT’d frames are much smaller than interpreted frames.
      e.g., “deep stack tests” can fail when running in -Xint mode and pass in the normal JIT’d mode, depending on how many “fluffy” interpreter frames are made before the JIT kicks in with tiny frames.

  3. Hi Cliff,
    I’ve been looking for a paper authored by you and a few colleagues I presume from Sun titled :-
    [CPV01] C. Click, M. Paleczny, C. Vick. Interference
    Graph Trimming. Submitted to ACM SIGPLAN’01
    Conference on Programming Language Design and
    Implementation, 2001.

    I’m trying to understand the graph coloring register allocator in C2 and this seems to be the only paper that discusses this subject. Could you point me to a copy of this paper? I haven’t been able to find it elsewhere.


  4. I was trying to find out more about fifth, and if you have any of the books left. I have a copy of it on a shareware CD-Rom disk. I could send you a copy of fifth21 if you would like.

  5. I still have a copy of the manual that Clay Douglass and I did in ’88. It is a late gallery and not the final version, so there are hand-scribbled edits in there. I’m pretty sure Kinko’s can scan it to PDF, or I can get you a comb-bound paper copy for the full-on retro vibe.

  6. re Java vs. C Performance — arrays. IBM J9 has packed objects for C like on/off heap data structures, Oracle is working on similar proposal.

Leave a Reply

Your email address will not be published. Required fields are marked *