Update compiler/ implications to use (D)CHECK_IMPLIES

Follow-up to aosp/1988868 in which we added the (D)CHECK_IMPLIES
macro. This CL uses it on compiler/ occurrences found by a regex.

Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b
Change-Id: If63aed969bfb8b31d6fbbcb3bca2b04314c894b7
diff --git a/compiler/optimizing/nodes.cc b/compiler/optimizing/nodes.cc
index 00bfc92..0018a5b 100644
--- a/compiler/optimizing/nodes.cc
+++ b/compiler/optimizing/nodes.cc
@@ -719,7 +719,8 @@
     // the first predecessor can never be a back edge and therefore it must have
     // been visited already and had its try membership set.
     HBasicBlock* first_predecessor = block->GetPredecessors()[0];
-    DCHECK(!block->IsLoopHeader() || !block->GetLoopInformation()->IsBackEdge(*first_predecessor));
+    DCHECK_IMPLIES(block->IsLoopHeader(),
+                   !block->GetLoopInformation()->IsBackEdge(*first_predecessor));
     const HTryBoundary* try_entry = first_predecessor->ComputeTryEntryOfSuccessors();
     if (try_entry != nullptr &&
         (block->GetTryCatchInformation() == nullptr ||
@@ -2468,7 +2469,7 @@
   //     control-flow instructions.
   for (HBasicBlock* predecessor : predecessors_) {
     // We should not see any back edges as they would have been removed by step (3).
-    DCHECK(!IsInLoop() || !GetLoopInformation()->IsBackEdge(*predecessor));
+    DCHECK_IMPLIES(IsInLoop(), !GetLoopInformation()->IsBackEdge(*predecessor));
 
     HInstruction* last_instruction = predecessor->GetLastInstruction();
     if (last_instruction->IsTryBoundary() && !IsCatchBlock()) {
@@ -3069,7 +3070,7 @@
     DCHECK(upper_bound_rti.IsSupertypeOf(rti))
         << " upper_bound_rti: " << upper_bound_rti
         << " rti: " << rti;
-    DCHECK(!upper_bound_rti.GetTypeHandle()->CannotBeAssignedFromOtherTypes() || rti.IsExact())
+    DCHECK_IMPLIES(upper_bound_rti.GetTypeHandle()->CannotBeAssignedFromOtherTypes(), rti.IsExact())
         << " upper_bound_rti: " << upper_bound_rti
         << " rti: " << rti;
   }