~/talk

“Using Compile-time Code Generation to build an LLVM IR Pattern Matcher”

Talkat CppCon 2018 · 2018-09-23..09-28· [compilers-and-language-design]
links:none on file
slides:none on file

A C++11 library that encodes LLVM IR match patterns as constexpr expression templates and operator-overloaded syntax produces a specialized pattern-matcher at compile time, rather than an interpreter at run time. It supports cycles in dataflow graphs (unlike LLVM’s tree-only matcher), uses uniform typelists, explicit type traits and comma/paren/operator overloads to name registers, compiles patterns to empty constexpr objects, and emits backtracking runtime code that matches within a 64-register compile-time bitset. The prototype works and the source is planned for GitHub.

AI-written summary · about

  1. 0:00Introduction and motivation
  2. 10:52Problem with pattern matching
  3. 20:56Design goals and solution
  4. 34:03Compile-time techniques used
  5. 45:14Advanced type list features
  6. 55:03Summary and future work
  7. 1:00:02Q&A session
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.