Hi,
Now that clang is warning about unused functions, the self-host build is really
noisy.
The majority of the unused functions are generated by TableGen:
/Volumes/Data/b/lib/Target/ARM/ARMGenDAGISel.inc:643:13: warning: unused
function 'Predicate_t2_so_imm2part' [-Wunused-function]
inline bool Predicate_t2_so_imm2part(SDNode *inN) const {
            ^
Specifically this FIXME in DAGISelEmitter::run:
  // FIXME: These are being used by hand written code, gross.
  EmitPredicateFunctions(OS);
The targets are using the Predicate_* functions in a few places
(X86ISelDAGToDAG.cpp):
        if (Predicate_immSext8(Val.getNode()))
          Opc = X86::LOCK_SUB16mi8;
        else
We need to move the relevant Predicate_* functions into *ISelDAGToDAG.cpp,
change the PatLeafs to call the new functions, and finally stop emitting the
predicate functions in TableGen.
Any volunteers?
/jakob