Mill Computing, Inc. Forums Announcements Events Ivan Godard and Mill at the 2015 European LLVM Conference

  • Author
    Posts
  • Brian Delaney
    Keymaster
    Post count: 3
    #1726 |

    Ivan Godard and Mill at the 2015 European LLVM Conference

    • What: The 5th European LLVM Meeting
    • Why: To network, learn how LLVM is used, and exchange ideas
    • When: Monday 13th – Tuesday 14th April 2015
    • Where: London, UK Goldsmiths College

    Details and registration can be found at http://llvm.org/devmtg/2015-04/

    Ivan Godard will be speaking on Tuesday, April 14th, from 9:00 AM to 10:00 AM London time.

    LLVM meets the truly alien: the Mill CPU architecture in a multi-target tool chain

    The Mill is a new commercial CPU family reflecting a ground-up rethink of single-thread architecture

    • Mill has no general registers
    • Mill is SSA – in hardware
    • Mill code has two instruction streams and two program counters, one of which runs backwards
    • Mill instructions look (kinda) like six VLIWs, side-by-side
    • Mill operations are polymorphic, both for scalar width and vector length
    • x = a < 0x12345678901234567 ? F(G(b+c), e-f) : g + h; is (less than) one instruction
    • and much more

    As a result, the Mill tool chain is – different. Except that it is LLVM. The retarget is not yet done, and has been – interesting. In the Chinese sense of interesting. The talk will explain how the Mill tool chain works, and why it is done that way, and where LLVM fits into it. Or doesn’t. Ranting and raving will ensue.

  • vapats
    Participant
    Post count: 11

    Give ’em hell, lads! 🙂

  • LarryP
    Participant
    Post count: 78

    Please, please post the slides as soon after the talk as possible! I know video editing takes time, but I hate to wait, and the slides have been first rate.

  • David
    Participant
    Post count: 32

    “a < 0x12345678901234567”, that’s a 68-bit literal. Is that supported?

    • Ivan Godard
      Keymaster
      Post count: 689

      Quad constants are supported on a quad member, but the example wasn’t intended to imply any particular length.

  • LarryP
    Participant
    Post count: 78

    @david, re 68-bit literals,

    Quite possibly. If you look at the flow-side decoding, outlined in:
    http://millcomputing.com/wiki/Decode#Flow_Stream, you’ll see that it’s very different from the exu side encode/decode that Ivan described in the encoding talk.

    Flow-side has both Manifests (up to 32 bits) and extensions (up to 3x morsel width, member dependent, 5 bits on gold), which suggests that each const operation could drop a 32 bit (or on gold potentially 32 + 3*5 = 57 bit) constant. Mill members with enough flow-side slots can thus drop a whole lot of bits of constant per instruction.

    What I’m less clear on — and hope to learn — is how the results of multiple const operations can be combined into a 64-bit (or evidently slightly longer) constant, not only in the same instruction, but in time to be used in opPhase, for the (ganged subtract/less-than) comparison in Ivan’s single-instruction example above. Ivan’s rather busy today, I’d imagine! 😉
    But maybe one of the other Millcomputing gurus will answer in the near future.

    • This reply was modified 9 years, 7 months ago by  LarryP.
    • Ivan Godard
      Keymaster
      Post count: 689

      32+(3*5) != 57 🙂

      The con() op uses the same flow-side bit-bunching that is used by the polyadic ops like call() and conform(). The extra slots encode the flowArg() pseudo-op, so you can consider it a flow-side gang.

      The bit-bunching happens for all the flow side ops, starting in D0; all the extension and manifest bits are moved to a long array with 47 (Gold) bits per slot. The move is controlled by two two-bit fields at fixed position in every op in the slot, so we can do the move without parsing the op or even knowing how many real ops there are. In D1 we know how many 47-bit elements are associated with each op, and for con we chop those out and ship them to the belt crossbar in time for the con to drop at the end of D2. The “<" is in X0 a.k.a D3, so it can use the literal. Ain't phasing lovely!

  • LarryP
    Participant
    Post count: 78

    Re long constants,
    Looking at the variations for the con operation (one variant of which takes five operands!!), I’d bet a pitcher of good beer that flow-side ganging is involved.

  • David
    Participant
    Post count: 32

    My misunderstanding. For some reason I confused the “always 64 bit” with the integer size, instead of just the addressing space. The test “x < [>64-bit constant]” would be constantly true if x was max 64 bits in length. But with 128-bit integers, my question is moot.

  • mermerico
    Moderator
    Post count: 10

    For some reason I had the impression that this talk was recorded. Was it?

    • Ivan Godard
      Keymaster
      Post count: 689

      It was recorded ny the LLVM folks, although I don’t know if they have made it available. It was not recorded by us.

      • striepan
        Participant
        Post count: 3

        Most talks there have links to slides. Could you post slides to the Mill talk?

        • Ivan Godard
          Keymaster
          Post count: 689

          Essentially all of the LLVM talk, except very explicit LLVM issues, will be covered in our upcoming June 10 talk (see the “Events” list, which will be videoed and posted here as usual. Please be patient 🙂

    • Veedrac
      Participant
      Post count: 25

      All (but one) of the previous years have videos linked, so I imagine we just need to be patient. The Wayback Machine is hinting that it might take a while.

  • Findecanor
    Participant
    Post count: 34

    We have waited quite a while for a video of this talk by now…

    • Ivan Godard
      Keymaster
      Post count: 689

      It was given yesterday, and post-production usually is a couple of weeks.

  • emrainey
    Participant
    Post count: 3

    Really excited to see this lecture or the SF C/C++ talk of the same as a video. I bet you guys are super busy, but please put some time into publishing this!

  • emrainey
    Participant
    Post count: 3

    Wow, late night! Thanks for the posting! Great talk too!

  • LarryP
    Participant
    Post count: 78

    Create/link compiler talk to a forum topic?

    Greetings all,

    Would whoever can do so, please link the compiler talk to a (new, I presume) forum topic, so that we may comment on it and see other folks comments, all in the same place?

    Thanks,

    Larry

    • staff
      Keymaster
      Post count: 49

      I’m not sure what you are asking here. If you go to The Compiler, which is where the top menu bar item ‘The Compiler’ under ‘docs/videos/slides’ gets you, there was a link at the top of that page to the forum topic since the video was posted.

  • LarryP
    Participant
    Post count: 78

    Oops; missed that. Apologies.

You must be logged in to reply to this topic.