<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJylVt9z4jYQ_mvMiwYGbALhgQdCjpZO7-bmcm1n-iabNaiRLUaSSelf329lYX4kk0l7GQdb0urb3W9Xu8rN5jhfOLEWL9KJF2OfVb0VphZ-R-Kp2NHms9mQFqWxYarZF6Zikb01BTmH6S3VZKVX2GRK8XR0nqo_k3QJzNI09UZ4I6qjcI3dW-UIMNKLml6Eqp23TcE7nUjSe1Pro2gcbUR-DMpYyDW5l3ZLPkln4oUsZo0XlvbG-igpc00wYiC-X9vMHlXSPkNMsoJ0aaq9Jk9hGWM2UsLAI_lO35VRr_XRgZgb02x3vOUodnIDCdjJehvN1KgabFWBkUEyfEyGi_a344MJwGZgs4lSHKRV7ARsnP4sNzdmTtsNjqiiQOZOHkg4U5HYg1MDSrV65s2pKuHPUZC0WpG95aKIuOz2xtRA9iI3bAijti5Cl3KRGsSWtWCm3jK5ymEbuXZjJaHSUc0BRXwpyRZiXd6mjbrWyqsXBMMTd0vcKSYses6xKqC5Zs82ulucCF2Dyko5x1ARFa5R7S2yDyHTyAP9Io9O5NRFlPdatd35JFtdB8tbBb6dgvlHiFfmwMDMzzlgAFeW9PFkNWfCWmxNm0-tjvZw1Zw9LIIMssfAqSAN9vis2aZ-FnmjtBelqpnLS1OSyTA-Ydjv94VM0pXWhwqvxiuNiK2-s0E_EchYLcEWvp4iB4Niv49I6UP7iPx_AoyHeER_NJtm8HmKpHuI3xMRFw9GbcQlQkgFx05li8JoTYX_ish-I2caiwDj6PPhTqYPrRIRX-8D7ah4Pp2UGlnyCkUguY0WJxmRZI_MNNiNEv0ocXvkgmQpEZxOFGBcAaGjQF3wJ6vYjbglnVwMcBb2p1E07NY2IVqkaIFbe8VlFDnngv4ObbC7Woxo2SUSjn2YHp03hd9HKvtJ9gnF83epG1q4B-WD4BuVkA28jfH93TnG9-P2-yMx_kBoxIkCeNbQtTtCNLVT2xoH5mm53vwd-IATQdFSS-cwGTAXa1D4io4LQsL-K919cSXDAMwRWkdkS7lA1m-obJGsoPfbHy1NHGk8eI1el-oLPXzIfkzT25QJZIaq_SdrjX0TFUT9aopT0i1fbb_4g54vpiuVl30rZPtlpUbNhzSnwnuA_PemRV8kOkTMAhATHJxCQewVskA9PB2-G02ndEyHo67k4Dv9eMn5cDpelYpXBSAwNn28GHejkFRvlpGrgnMD0GXpsmuRt1aRtZ252RJPoO5uWfP_uj711nMMQ6N07UVjEAQh_1YXeWobYmhnsceFrog2h3O3R-OUOT7jPUBWaGJdbz1dCgTfYbq-2dvMs80sm8mebHBDsvNfTP0V3bvuNVbPd97vQ0DSFZ6t8rsmH8D-cx_iVx9l8y_0BwyhrOFyt7rLxtNxbzcvgX5XTsbj9L4s0-lsNKaimE7z0SibTWhIPS1z-D5P7tDh0nCXY4hA2GPvxy1Q83SYcubdp1k6ydLBaDYbyyGU3k-G2URKZCJVUukB4wyM3fbsPEDmzdZhUSvn3XkRdYyLHEWDP0v_Dz3EqxdeHvdoraU9zzQvpLa4QkSPvPKa5v8160sY6C7ue7cXpveqwKAXKJkHPv4FvUvOpw>53474</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            CodeGenSchedModels::checkCompleteness() fails to report missing schedule information for instruction.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
            MatzeB,
            tstellar,
            uweigand
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          JonPsson
      </td>
    </tr>
</table>

<pre>
    As I was working on the SchedModel for the upcoming processor generation of SystemZ, I found to my surprise that new instructions (only used by the new subtarget) were not reported by tablegen. The SchedModel was marked as "CompleteModel", and yet the new instructions were not reported even though they had now scheduling information.

I found that there was a variable 'HadCompleteModel' that seemed to have some purpose like "if any earlier SchedModel was complete, don't bother to report this", or something. This doesn't make sense to me: If the SchedModel is complete, the instruction has scheduling info, and the processor model supports the instruction, then a missing scheduler entry should always be reported, right?

I tried simply removing this variable entirely, and now I got the reports I wanted and everything else on trunk built fine:

```
--- a/llvm/utils/TableGen/CodeGenSchedule.cpp
+++ b/llvm/utils/TableGen/CodeGenSchedule.cpp
@@ -1973,7 +1973,6 @@ void CodeGenSchedModels::collectProcResources() {
 
 void CodeGenSchedModels::checkCompleteness() {
   bool Complete = true;
-  bool HadCompleteModel = false;
   for (const CodeGenProcModel &ProcModel : procModels()) {
     const bool HasItineraries = ProcModel.hasItineraries();
     if (!ProcModel.ModelDef->getValueAsBit("CompleteModel"))
@@ -1985,7 +1984,7 @@ void CodeGenSchedModels::checkCompleteness() {
         continue;
       unsigned SCIdx = getSchedClassIdx(*Inst);
       if (!SCIdx) {
-        if (Inst->TheDef->isValueUnset("SchedRW") && !HadCompleteModel) {
+        if (Inst->TheDef->isValueUnset("SchedRW")) {
           PrintError(Inst->TheDef->getLoc(),
                      "No schedule information for instruction '" +
                          Inst->TheDef->getName() + "' in SchedMachineModel '" +
@@ -2013,7 +2012,6 @@ void CodeGenSchedModels::checkCompleteness() {
         Complete = false;
       }
     }
-    HadCompleteModel = true;
   }
   if (!Complete) {
     errs() << "\n\nIncomplete schedule models found.\n"
```
Should this simply be removed per above, or am I missing something here?

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJylVtuO4zYM_RrnRUiQ2JlcHvKQyWzaFN3FYme3Bfom23KijmwFkpw0_foeyrJzxWDaDjyxLZOH5CFFKtX5abG0bMOO3LKjNm-y2jJdMbcT7DXbifyzzoVihTZ-qd5nuiSRvdGZsBbLW1EJw52Eki7Y68k6Uf4RxStgFrqucuY0K0_M1mZvpBWA4Y5V4shkZZ2pM9K0LIpnulInVluRs_TkjZGQrVPHzVa4KJ6zozBY1Y4ZsdfGBUmeKgEnBuz7tc8UUcnNG8Q4GYhXutwr4YT_jHdyksPBk3CdvSun7u2JgyBudL3dkcqJ7XgOCfhJdmtF1MgKbJWekUE0fImGy-a344MIgDKwyUXODtxICgI-Tn_m-Y2b00bBClEKT-aOHwSzuhRsD041KFXyjZRjWSCeExPcKCnMLRdZwKWwc10B2bFUkyOE2oQIW9IGapBbsoKVakvkSgs1YRvFksOkFRUlFPkVUbJkm-K2bOS1Vfp6QTAisbfEtTkh0XONlR7N1nvy0d7iBOgKVJbSWoIKqAhNVM6g-pAyhTpQR36yLBVdRknXyO3ORcn6OlnOSPBtJdw_QbzUBwImfs4JA7g0Qp1ar6kSNmyrm3pqbDSbq6LqIRFUkDl5TplQYI_2mqmrN5bWUjlWyIq4vHQlmgzD5V_7_T7jUbxW6lDiVjupkLH1d3LoJwEy1iuwhafXwMEg2-8DUvzcXCz9jwDjIS7WH82nCWKeouiew_OEhY8HLXN2ieBLwVJQyTLTSonMfUVmvwmra4MEY-vT5o6mz40RFm7vA-1E9tbulApVcofCUNxasVaGRckLMQ12g0Q_SNxuOS9ZcCSnEwUYdUDYyNAXXOsVhRFU4snFC_bCvn0Ljt36xliDFDywGyepjaLmrLffoQ12Vx8DWnKJhG3vl0dnJf_7Iop-lHxC8_yNq1os7bN0XvBBJyQHb3M8ezrneDZunj-S4w-khrUUILJaXIfDWF1Zua2wYV5Xm_wvzweC8IZWiluLRY-53IDCOzouCPH6V7b77EqGAIgjjI7AlrSerB_obIEsb_fb7w1NlGlcuI3uW_WFHdpk_8_SY8oYKkNW7pMx2jxEBVG_6qwtutWd-sUf7HzRXau8nFu-2i87NXo-pKkU3gOkv4cefeGYEKEKQIwPcAoDYVbwDP2w3Xw3ltpyjIejruXgOf54y_lwOV61irsG4Bmbvly8d2--qB62kauGcwPQVemqG5G3XgljOneTFS5P3dOqov9N1c7Wcw79oLTNQWPgBSH_aIq8NgPRj7Mw4_xUxJjDvttjcPIUj-EcwEsMsW62tocCRmeYbm728kWSz5M57znplFj823wUHHPo4iRyO8rfq89BrzZqsXNu743Ea1xb6XZ1OgBH51lHtz5a85-YQXiFhZpa6vopGU_Hvd1iMkmLOJuOpiIVOR8nacyL4fxpPE34cFzMip7iKQJZRE-YorE_LxKET8pLTy7iYUy1OYuTeJLEg9F8PuZDqMwmw2TCOWpVlAhzQH4MtNn2zMK7lNZbi49KWmfPH9HpqA2KYO4zd3-L53A4w83hpK0UN-eV-ijkFoeM4A-vcVI1i1909RWnqKrnfV34WP8BVZm5rA">