LLVM Programmer’s Manual strongly discourages the use of std::vector<bool> and suggests llvm::BitVector as a possible replacement.
This patch replaces the use of std::vector with llvm::BitVector in LLVM's YAML traits and replaces the call to Vec.insert(Vec.begin(), N, false) on empty Vec with Vec.resize(N, false), which has the same sematnics but avoids using insert and iterators, which llvm::BitVector doesn't possess.
Is the <vector> header still needed then?