[PATCH] D15667: [MachineScheduler] Handle regmasks and allow calls to be rescheduled.

Jonas Paulsson via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 12 05:05:48 PDT 2016


jonpa updated this revision to Diff 53384.
jonpa added a comment.
Herald added a subscriber: MatzeB.

Changed the isSchedBoundary() function per request so that TII is used for calls handling.

Changes in clearCallsInDefsForReg() per suggestions to simply erase all previous calls before adding the current one.

New method addCallDeps(), to implement deps for reserved registers. I was not sure if all calls are guaranteed to have a regmask operand - in that case this method could have been eliminated and handled in addRegMaskDeps().

-misched=shuffle passes on X86.

Regarding the current discussion of compile time: this patch will make dags bigger, and potentially slower. Perhaps this should be checked?

With the test-suite on X86 (with default scheduler), I got:

Results
-------

IMPROVED : 251
REGRESSED : 234


http://reviews.llvm.org/D15667

Files:
  include/llvm/CodeGen/ScheduleDAGInstrs.h
  lib/CodeGen/MachineScheduler.cpp
  lib/CodeGen/ScheduleDAGInstrs.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15667.53384.patch
Type: text/x-patch
Size: 9111 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160412/fbeab332/attachment.bin>


More information about the llvm-commits mailing list