Changes in directory llvm/lib/Target/X86:
README.txt updated: 1.141 -> 1.142 --- Log message: add a note --- Diffs of the changes: (+27 -0) README.txt | 27 +++++++++++++++++++++++++++ 1 files changed, 27 insertions(+) Index: llvm/lib/Target/X86/README.txt diff -u llvm/lib/Target/X86/README.txt:1.141 llvm/lib/Target/X86/README.txt:1.142 --- llvm/lib/Target/X86/README.txt:1.141 Fri Oct 6 12:39:34 2006 +++ llvm/lib/Target/X86/README.txt Thu Oct 12 17:01:26 2006 @@ -734,3 +734,30 @@ ret //===---------------------------------------------------------------------===// + +Consider the expansion of: + +uint %test3(uint %X) { + %tmp1 = rem uint %X, 255 + ret uint %tmp1 +} + +Currently it compiles to: + +... + movl $2155905153, %ecx + movl 8(%esp), %esi + movl %esi, %eax + mull %ecx +... + +This could be "reassociated" into: + + movl $2155905153, %eax + movl 8(%esp), %ecx + mull %ecx + +to avoid the copy. In fact, the existing two-address stuff would do this +except that mul isn't a commutative 2-addr instruction. I guess this has +to be done at isel time based on the #uses to mul? + _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits