Skip to content

Latest commit

 

History

History
464 lines (423 loc) · 21.8 KB

v0.3_draft.md

File metadata and controls

464 lines (423 loc) · 21.8 KB

Version 0.3

This file tracks the implementation status of various LLVM IR language concepts, as covered by the v0.3 release of llir/llvm.

The asm checkbox tracks read support of the language concept by the llvm/asm package.

The ir checkbox tracks support for an in-memory representation of the language concept by the llvm/ir package.

Modules

  • Source filename (ref [1])
    • asm
    • ir
  • Target specifiers (ref [1, 2])
    • asm
    • ir [1, 2]
  • Module-level inline assembly (ref [1])
    • asm
    • ir
  • Type definitions (ref [1])
    • asm
    • ir [1]
  • Comdat definitions (ref [1])
    • asm
    • ir
  • Global variables (ref [1])
    • asm
    • ir [1]
  • Functions (ref [1])
    • asm
    • ir [1]
  • Attribute group definitions (ref [1])
    • asm
    • ir
  • Metadata definitions (ref [1])
    • asm
    • ir [1, 2]

Types

  • Void type (ref [1])
    • asm
    • ir [1]
  • Function type (ref [1])
    • asm
    • ir [1]
  • Integer type (ref [1])
    • asm
    • ir [1]
  • Floating-point type (ref [1])
    • asm
    • ir [1]
  • x86 MMX type (ref [1])
    • asm
    • ir
  • Pointer type (ref [1])
    • asm
    • ir [1]
  • Vector type (ref [1])
    • asm
    • ir [1]
  • Label type (ref [1])
    • asm
    • ir [1]
  • Token type (ref [1])
    • asm
    • ir
  • Metadata type (ref [1])
    • asm
    • ir [1]
  • Array type (ref [1])
    • asm
    • ir [1]
  • Struct type (ref [1])
    • asm
    • ir [1]

Constants

  • Integer constant (ref [1])
    • asm
    • ir [1]
  • Floating-point constant (ref [1])
    • asm
    • ir [1]
  • Pointer constant (ref [1, 2])
    • asm
    • ir [1, 2, 3]
  • Token constant (ref [1])
    • asm
    • ir
  • Vector constant (ref [1])
    • asm
    • ir [1]
  • Array constant (ref [1])
    • asm
    • ir [1]
  • Struct constant (ref [1])
    • asm
    • ir [1]
  • Zero initializer constant (ref [1])
    • asm
    • ir [1]
  • Undefined value constant (ref [1])
    • asm
    • ir [1]
  • Block address constant (ref [1])
    • asm
    • ir

Constant expressions

Binary expressions

  • add (ref [1])
    • asm
    • ir [1]
  • fadd (ref [1])
    • asm
    • ir [1]
  • sub (ref [1])
    • asm
    • ir [1]
  • fsub (ref [1])
    • asm
    • ir [1]
  • mul (ref [1])
    • asm
    • ir [1]
  • fmul (ref [1])
    • asm
    • ir [1]
  • udiv (ref [1])
    • asm
    • ir [1]
  • sdiv (ref [1])
    • asm
    • ir [1]
  • fdiv (ref [1])
    • asm
    • ir [1]
  • urem (ref [1])
    • asm
    • ir [1]
  • srem (ref [1])
    • asm
    • ir [1]
  • frem (ref [1])
    • asm
    • ir [1]

Bitwise expressions

  • shl (ref [1])
    • asm
    • ir [1]
  • lshr (ref [1])
    • asm
    • ir [1]
  • ashr (ref [1])
    • asm
    • ir [1]
  • and (ref [1])
    • asm
    • ir [1]
  • or (ref [1])
    • asm
    • ir [1]
  • xor (ref [1])
    • asm
    • ir [1]

Vector expressions

  • extractelement (ref [1])
    • asm
    • ir [1]
  • insertelement (ref [1])
    • asm
    • ir [1]
  • shufflevector (ref [1])
    • asm
    • ir [1]

Aggregate expressions

  • extractvalue (ref [1])
    • asm
    • ir [1]
  • insertvalue (ref [1])
    • asm
    • ir [1]

Memory expressions

  • getelementptr (ref [1])
    • asm
    • ir [1]

Conversion expressions

  • trunc (ref [1])
    • asm
    • ir [1]
  • zext (ref [1])
    • asm
    • ir [1]
  • sext (ref [1])
    • asm
    • ir [1]
  • fptrunc (ref [1])
    • asm
    • ir [1]
  • fpext (ref [1])
    • asm
    • ir [1]
  • fptoui (ref [1])
    • asm
    • ir [1]
  • fptosi (ref [1])
    • asm
    • ir [1]
  • uitofp (ref [1])
    • asm
    • ir [1]
  • sitofp (ref [1])
    • asm
    • ir [1]
  • ptrtoint (ref [1])
    • asm
    • ir [1]
  • inttoptr (ref [1])
    • asm
    • ir [1]
  • bitcast (ref [1])
    • asm
    • ir [1]
  • addrspacecast (ref [1])
    • asm
    • ir [1]

Other expressions

  • icmp (ref [1])
    • asm
    • ir [1]
  • fcmp (ref [1])
    • asm
    • ir [1]
  • select (ref [1])
    • asm
    • ir [1]

Instructions

Binary instructions

  • add (ref [1])
    • asm
    • ir [1]
  • fadd (ref [1])
    • asm
    • ir [1]
  • sub (ref [1])
    • asm
    • ir [1]
  • fsub (ref [1])
    • asm
    • ir [1]
  • mul (ref [1])
    • asm
    • ir [1]
  • fmul (ref [1])
    • asm
    • ir [1]
  • udiv (ref [1])
    • asm
    • ir [1]
  • sdiv (ref [1])
    • asm
    • ir [1]
  • fdiv (ref [1])
    • asm
    • ir [1]
  • urem (ref [1])
    • asm
    • ir [1]
  • srem (ref [1])
    • asm
    • ir [1]
  • frem (ref [1])
    • asm
    • ir [1]

Bitwise instructions

  • shl (ref [1])
    • asm
    • ir [1]
  • lshr (ref [1])
    • asm
    • ir [1]
  • ashr (ref [1])
    • asm
    • ir [1]
  • and (ref [1])
    • asm
    • ir [1]
  • or (ref [1])
    • asm
    • ir [1]
  • xor (ref [1])
    • asm
    • ir [1]

Vector instructions

  • extractelement (ref [1])
    • asm
    • ir [1]
  • insertelement (ref [1])
    • asm
    • ir [1]
  • shufflevector (ref [1])
    • asm
    • ir [1]

Aggregate instructions

  • extractvalue (ref [1])
    • asm
    • ir [1]
  • insertvalue (ref [1])
    • asm
    • ir [1]

Memory instructions

  • alloca (ref [1])
    • asm
    • ir [1]
  • load (ref [1])
    • asm
    • ir [1]
  • store (ref [1])
    • asm
    • ir [1]
  • fence (ref [1])
    • asm
    • ir
  • cmpxchg (ref [1])
    • asm
    • ir
  • atomicrmw (ref [1])
    • asm
    • ir
  • getelementptr (ref [1])
    • asm
    • ir [1]

Conversion instructions

  • trunc (ref [1])
    • asm
    • ir [1]
  • zext (ref [1])
    • asm
    • ir [1]
  • sext (ref [1])
    • asm
    • ir [1]
  • fptrunc (ref [1])
    • asm
    • ir [1]
  • fpext (ref [1])
    • asm
    • ir [1]
  • fptoui (ref [1])
    • asm
    • ir [1]
  • fptosi (ref [1])
    • asm
    • ir [1]
  • uitofp (ref [1])
    • asm
    • ir [1]
  • sitofp (ref [1])
    • asm
    • ir [1]
  • ptrtoint (ref [1])
    • asm
    • ir [1]
  • inttoptr (ref [1])
    • asm
    • ir [1]
  • bitcast (ref [1])
    • asm
    • ir [1]
  • addrspacecast (ref [1])
    • asm
    • ir [1]

Other instructions

  • icmp (ref [1])
    • asm
    • ir [1]
  • fcmp (ref [1])
    • asm
    • ir [1]
  • phi (ref [1])
    • asm
    • ir [1]
  • select (ref [1])
    • asm
    • ir [1]
  • call (ref [1])
    • asm
    • ir [1]
  • va_arg (ref [1])
    • asm
    • ir
  • landingpad (ref [1])
    • asm
    • ir
  • catchpad (ref [1])
    • asm
    • ir
  • cleanuppad (ref [1])
    • asm
    • ir

Terminators

  • ret (ref [1])
    • asm
    • ir [1]
  • br (ref [1])
    • asm
    • ir [1, 1]
  • switch (ref [1])
    • asm
    • ir [1]
  • indirectbr (ref [1])
    • asm
    • ir
  • invoke (ref [1])
    • asm
    • ir
  • resume (ref [1])
    • asm
    • ir
  • catchswitch (ref [1])
    • asm
    • ir
  • catchret (ref [1])
    • asm
    • ir
  • cleanupret (ref [1])
    • asm
    • ir
  • unreachable (ref [1])
    • asm
    • ir [1]