[llvm-commits] [llvm] r37892 - /llvm/trunk/lib/Target/Target.td

Chris Lattner clattner at apple.com
Thu Jul 5 09:09:30 PDT 2007


Hi Evan,

> +/// execute". If isOutput is true, then this is output operand.

I don't get it.  What is an "output predicate"?  I see you use this  
in the arm backend:

+// Conditional code result for cmp, etc.
+//
+def cc_out : PredicateResultOperand<OtherVT, (ops CCR), (ops (i32  
zero_reg))> {
    let PrintMethod = "printPredicateOperand";
  }

why not just have cmp have an implicit def of the flags?  It seems  
very very strange to me to have a "predicate" that is an output...


>  /// If isImmutable
> +/// is true, then the operand should not change after instruction  
> selection.

What does isImmutable mean?  Can you give an example?   Is this a  
property of the target or a property of the codegen algorithms?

-Chris




More information about the llvm-commits mailing list